model = Log.getLogListModel();
+ listModel = new MyFilteredListModel(model);
+ list.setModel(listModel);
+ listModel.setList(list);
showDebug = debug.isSelected();
jEdit.setBooleanProperty("log-viewer.message.debug", showDebug);
@@ -573,7 +611,6 @@
jEdit.setBooleanProperty("debug.beepOnOutput", beep.isSelected());
- setFilter();
// it would be most clean to call jEdit.propertiesChanged() now
// which is needed since global debug.beepOnOutput flag is attached to this pane;
// but to avoid extra log entries, we workaround it by direct Log access
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/gui/RegisterViewer.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/gui/RegisterViewer.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/gui/RegisterViewer.java 2017-03-18 13:30:25.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/gui/RegisterViewer.java 2018-04-08 23:56:46.000000000 +0000
@@ -302,8 +302,8 @@
{
public void valueChanged(ListSelectionEvent evt)
{
- Object value = registerList.getSelectedValue();
- if(!(value instanceof Character))
+ String value = registerList.getSelectedValue();
+ if (value == null || value.length() < 1)
{
if (!editing)
{
@@ -313,7 +313,7 @@
return;
}
- char name = ((Character)value).charValue();
+ char name = value.charAt(0);
Registers.Register reg = Registers.getRegister(name);
if(reg == null)
@@ -326,7 +326,6 @@
return;
}
-
if (!editing)
{
contentTextArea.setText(reg.toString());
@@ -396,10 +395,10 @@
private void updateRegister()
{
- Object value = registerList.getSelectedValue();
- if(!(value instanceof Character))
+ String value = registerList.getSelectedValue();
+ if(value == null || value.length() < 1)
return;
- char name = ((Character)value).charValue();
+ char name = value.charAt(0);
Registers.setRegister(name,contentTextArea.getText());
}
} //}}}
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/gui/SplashScreen.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/gui/SplashScreen.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/gui/SplashScreen.java 2017-03-18 13:30:25.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/gui/SplashScreen.java 2018-04-08 23:56:46.000000000 +0000
@@ -29,7 +29,7 @@
//}}}
/** The splash screen displayed on startup.
- * @version $Id: SplashScreen.java 23449 2014-03-30 19:14:26Z kerik-sf $
+ * @version $Id: SplashScreen.java 24830 2018-02-22 01:21:35Z vampire0 $
*/
public class SplashScreen extends JComponent
{
@@ -263,7 +263,7 @@
private final Image image;
private int progress;
private static final int PROGRESS_HEIGHT = 20;
- private static final int PROGRESS_COUNT = 28;
+ private static final int PROGRESS_COUNT = 23;
private String label;
private String lastLabel;
private long firstAdvanceTime = System.currentTimeMillis();
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/gui/statusbar/LockedWidgetFactory.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/gui/statusbar/LockedWidgetFactory.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/gui/statusbar/LockedWidgetFactory.java 1970-01-01 00:00:00.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/gui/statusbar/LockedWidgetFactory.java 2018-04-08 23:56:22.000000000 +0000
@@ -0,0 +1,104 @@
+/*
+ * jEdit - Programmer's Text Editor
+ * :tabSize=8:indentSize=8:noTabs=false:
+ * :folding=explicit:collapseFolds=1:
+ *
+ * Copyright © 2017 jEdit contributors
+ *
+ * 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.
+ */
+
+package org.gjt.sp.jedit.gui.statusbar;
+
+//{{{ Imports
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.FontMetrics;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import javax.swing.JComponent;
+import javax.swing.JLabel;
+import javax.swing.SwingConstants;
+
+import org.gjt.sp.jedit.Buffer;
+import org.gjt.sp.jedit.View;
+import org.gjt.sp.jedit.jEdit;
+//}}}
+
+/**
+ * @author Roman Tsourick
+ */
+public class LockedWidgetFactory implements StatusWidgetFactory
+{
+ //{{{ getWidget() class
+ public Widget getWidget(View view)
+ {
+ Widget widget = new LockedWidget(view);
+ return widget;
+ } //}}}
+
+ //{{{ LockedWidget class
+ private static class LockedWidget implements Widget
+ {
+ private final JLabel cmp;
+ private final View view;
+ LockedWidget(final View view)
+ {
+ cmp = new ToolTipLabel();
+ cmp.setHorizontalAlignment(SwingConstants.CENTER);
+
+ this.view = view;
+ cmp.addMouseListener(new MouseAdapter()
+ {
+ @Override
+ public void mouseClicked(MouseEvent evt)
+ {
+ view.getBuffer().toggleLocked(view);
+ }
+ });
+ }
+
+ public JComponent getComponent()
+ {
+ return cmp;
+ }
+
+ public void update()
+ {
+ Buffer buffer = view.getBuffer();
+ Boolean locked = buffer.isLocked();
+
+ cmp.setText(locked ? "L" : "l");
+ cmp.setEnabled(locked);
+
+ cmp.setToolTipText(jEdit.getProperty("view.status.locked-tooltip",
+ new Integer[] { locked ? 1 : 0 }));
+ }
+
+ public void propertiesChanged()
+ {
+ // retarded GTK look and feel!
+ Font font = new JLabel().getFont();
+ //UIManager.getFont("Label.font");
+ FontMetrics fm = cmp.getFontMetrics(font);
+ Dimension dim = new Dimension(
+ Math.max(fm.charWidth('r'),fm.charWidth('R')) + 1,
+ fm.getHeight());
+ cmp.setPreferredSize(dim);
+ cmp.setMaximumSize(dim);
+
+ }
+ } //}}}
+
+}
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/gui/statusbar/WrapWidgetFactory.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/gui/statusbar/WrapWidgetFactory.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/gui/statusbar/WrapWidgetFactory.java 2017-03-18 13:30:25.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/gui/statusbar/WrapWidgetFactory.java 2018-04-08 23:56:22.000000000 +0000
@@ -90,7 +90,7 @@
if("none".equals(wrap))
{
this.wrap.setEnabled(false);
- this.wrap.setText("N");
+ this.wrap.setText("n");
}
else
{
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/gui/StatusBar.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/gui/StatusBar.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/gui/StatusBar.java 2017-03-18 13:30:25.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/gui/StatusBar.java 2018-04-08 23:56:46.000000000 +0000
@@ -52,7 +52,7 @@
* Displaying memory status
*
*
- * @version $Id: StatusBar.java 23410 2014-02-09 19:23:35Z ezust $
+ * @version $Id: StatusBar.java 24809 2017-12-30 21:11:37Z daleanson $
* @author Slava Pestov
* @since jEdit 3.2pre2
*/
@@ -93,6 +93,7 @@
rectSelectWidget = _getWidget("rectSelect");
overwriteWidget = _getWidget("overwrite");
lineSepWidget = _getWidget("lineSep");
+ lockedWidget = _getWidget("locked");
taskHandler = new TaskHandler();
} //}}}
@@ -432,6 +433,7 @@
modeWidget.update();
foldWidget.update();
encodingWidget.update();
+ lockedWidget.update();
} //}}}
//{{{ updateMiscStatus() method
@@ -460,6 +462,7 @@
private final Widget rectSelectWidget;
private final Widget overwriteWidget;
private final Widget lineSepWidget;
+ private final Widget lockedWidget;
/* package-private for speed */ StringBuilder buf = new StringBuilder();
private Timer tempTimer;
private boolean currentMessageIsIO;
@@ -492,6 +495,8 @@
return overwriteWidget;
if ("lineSep".equals(name))
return lineSepWidget;
+ if ("locked".equals(name))
+ return lockedWidget;
return _getWidget(name);
} //}}}
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/gui/StyleEditor.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/gui/StyleEditor.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/gui/StyleEditor.java 2017-03-18 13:30:25.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/gui/StyleEditor.java 2018-04-08 23:56:46.000000000 +0000
@@ -91,8 +91,9 @@
}
String typeName = Token.tokenToString(token.id);
String property = "view.style." + typeName.toLowerCase();
+ Font font = new JLabel().getFont();
SyntaxStyle currentStyle = SyntaxUtilities.parseStyle(
- jEdit.getProperty(property), "Dialog",12, true);
+ jEdit.getProperty(property), font.getFamily(), font.getSize(), true);
SyntaxStyle style = new StyleEditor(textArea.getView(),
currentStyle, typeName).getStyle();
if(style != null)
@@ -229,11 +230,12 @@
? bgColor.getSelectedColor()
: null);
+ Font font = new JLabel().getFont();
return new SyntaxStyle(foreground,background,
- new Font("Dialog",
+ new Font(font.getFamily(),
(italics.isSelected() ? Font.ITALIC : 0)
| (bold.isSelected() ? Font.BOLD : 0),
- 12));
+ font.getSize()));
} //}}}
//{{{ Private members
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/io/VFS.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/io/VFS.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/io/VFS.java 2017-03-18 13:30:30.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/io/VFS.java 2018-04-08 23:57:13.000000000 +0000
@@ -88,7 +88,7 @@
* {@link #createVFSSession(String,Component)} - unless
* NON_AWT_SESSION_CAP
capability is set
* {@link #insert(View,Buffer,String)}
- * {@link #load(View,Buffer,String)}
+ * {@link #load(View,Buffer,String,boolean)}
* {@link #save(View,Buffer,String)}
*
*
@@ -104,7 +104,7 @@
* @see VFSManager#getVFSForProtocol(String)
*
* @author Slava Pestov
- * @author $Id: VFS.java 24415 2016-06-19 11:07:55Z kerik-sf $
+ * @author $Id: VFS.java 24832 2018-02-22 01:27:36Z vampire0 $
*/
public abstract class VFS
{
@@ -473,8 +473,9 @@
* @param view The view
* @param buffer The buffer
* @param path The path
+ * @param untitled is the buffer untitled
*/
- public boolean load(View view, Buffer buffer, String path)
+ public boolean load(View view, Buffer buffer, String path, boolean untitled)
{
if((getCapabilities() & READ_CAP) == 0)
{
@@ -489,7 +490,7 @@
if((getCapabilities() & WRITE_CAP) == 0)
buffer.setReadOnly(true);
- Task request = new BufferLoadRequest(view, buffer, session, this, path);
+ Task request = new BufferLoadRequest(view, buffer, session, this, path, untitled);
if(buffer.isTemporary())
// this makes HyperSearch much faster
request.run();
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/jedit_gui.props jedit-5.5.0+dfsg/org/gjt/sp/jedit/jedit_gui.props
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/jedit_gui.props 2017-03-18 13:30:25.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/jedit_gui.props 2018-04-08 23:57:31.000000000 +0000
@@ -541,7 +541,7 @@
# Title
#{{{ Status bar component visibility
-view.status=( mode , fold , encoding ) wrap multiSelect rectSelect overwrite lineSep buffersets task-monitor memory-status errors clock
+view.status=( mode , fold , encoding ) locked wrap multiSelect rectSelect overwrite lineSep buffersets task-monitor memory-status errors clock
view.status.show-caret-status=true
#}}}
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/jEdit.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/jEdit.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/jEdit.java 2017-03-18 13:30:25.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/jEdit.java 2018-04-08 23:56:22.000000000 +0000
@@ -85,7 +85,7 @@
/**
* The main class of the jEdit text editor.
* @author Slava Pestov
- * @version $Id: jEdit.java 24593 2017-01-20 09:57:13Z vampire0 $
+ * @version $Id: jEdit.java 24853 2018-04-08 23:54:10Z vampire0 $
*/
public class jEdit
{
@@ -106,7 +106,7 @@
public static String getBuild()
{
// (major).(minor).(<99 = preX, 99 = "final").(bug fix)
- return "05.04.99.00";
+ return "05.05.99.00";
} //}}}
//{{{ main() method
@@ -151,8 +151,9 @@
// are closed
background = OperatingSystem.isMacOS();
- // Fix X11 windows class
- if (OperatingSystem.isX11())
+ // Fix X11 windows class for Java 8. For Java 9, this is done in the
+ // jar manifest file.
+ if (OperatingSystem.isX11() && javaVersion.startsWith("1.8"))
{
try
{
@@ -505,6 +506,8 @@
MigrationService keymapMigration = ServiceManager.getService(MigrationService.class, "keymap");
keymapMigration.migrate();
}
+ else
+ GUIUtilities.advanceSplashProgress();
SearchAndReplace.load();
@@ -568,13 +571,14 @@
File file = new File(path);
if(file.exists())
{
+ GUIUtilities.advanceSplashProgress("run startup scripts");
runStartupScripts(file);
}
else
GUIUtilities.advanceSplashProgress();
}
else
- GUIUtilities.advanceSplashProgress("run startup scripts");
+ GUIUtilities.advanceSplashProgress();
if(runStartupScripts && settingsDirectory != null)
{
@@ -1553,7 +1557,18 @@
}
if(view != null && retVal != null)
- view.setBuffer(retVal);
+ {
+ if(view.getBuffer() != retVal)
+ {
+ view.setBuffer(retVal);
+ // Although gotoMarker code is set to execute its code in a runAfterIoTasks runnable,
+ // the view.setBuffer command might end up being executed after the gotoMarker code,
+ // if so the caret might not be visible when the buffer is changed, so we scroll to
+ // caret overhere.
+ if(!view.getTextArea().isCaretVisible())
+ view.getTextArea().scrollToCaret(false);
+ }
+ }
return retVal;
} //}}}
@@ -1695,7 +1710,25 @@
return buffer;
}
- newBuffer = new Buffer(path,newFile,false,props);
+ // if it is new, then it is untitled
+ newBuffer = new Buffer(path,newFile,false,props,newFile);
+
+
+ if (newBuffer.isBackup()) {
+ Object[] args = {newBuffer.getName()};
+ int result = GUIUtilities.option(view, "file-is-backup",
+ args, JOptionPane.WARNING_MESSAGE,
+ new String[]{
+ jEdit.getProperty("file-is-backup.open"),
+ jEdit.getProperty("file-is-backup.open-locked"),
+ jEdit.getProperty("common.cancel")
+ }, jEdit.getProperty("common.cancel"));
+ if (result == 2)
+ return null;
+ if (result == 1)
+ newBuffer.setLocked(true);
+ }
+
if(!newBuffer.load(view,false))
return null;
@@ -1740,7 +1773,35 @@
{
return openTemporary(view, parent, path, newFile, null);
}
+
+ //{{{ openTemporary() methods
/**
+ * Opens a temporary buffer. A temporary buffer is like a normal
+ * buffer, except that an event is not fired and the buffer is
+ * not added to the buffers list.
+ * If a buffer for the given path
was
+ * already opened in jEdit, then this instance is returned.
+ * Otherwise jEdit will not store a reference
+ * to the returned Buffer object.
+ *
This method is thread-safe.
+ *
+ * @param view The view to open the file in
+ * @param parent The parent directory of the file
+ * @param path The path name of the file
+ * @param newFile True if the file should not be loaded from disk
+ * @param untitled is the buffer untitled
+ *
+ * @return the buffer, or null if jEdit was unable to load it
+ *
+ * @since jEdit 5.5pre1
+ */
+ public static Buffer openTemporary(View view, String parent,
+ String path, boolean newFile, boolean untitled)
+ {
+ return openTemporary(view, parent, path, newFile, null, untitled);
+ }
+
+ /**
* Opens a temporary buffer.
* Details: {@link #openTemporary(View, String, String, boolean)}
*
@@ -1757,6 +1818,27 @@
public static Buffer openTemporary(View view, String parent,
String path, boolean newFile, Hashtable props)
{
+ return openTemporary(view, parent, path, newFile, null, false);
+ }
+
+ /**
+ * Opens a temporary buffer.
+ * Details: {@link #openTemporary(View, String, String, boolean)}
+ *
+ * @param view The view to open the file in
+ * @param parent The parent directory of the file
+ * @param path The path name of the file
+ * @param newFile True if the file should not be loaded from disk
+ * @param props Buffer-local properties to set in the buffer
+ * @param untitled is the buffer untitled
+ *
+ * @return the buffer, or null if jEdit was unable to load it
+ *
+ * @since jEdit 4.3pre10
+ */
+ public static Buffer openTemporary(View view, String parent,
+ String path, boolean newFile, Hashtable props, boolean untitled)
+ {
if(view != null && parent == null)
parent = view.getBuffer().getDirectory();
@@ -1778,7 +1860,7 @@
if(buffer != null)
return buffer;
- buffer = new Buffer(path,newFile,true,props);
+ buffer = new Buffer(path,newFile,true,props,untitled);
buffer.setBooleanProperty(Buffer.ENCODING_AUTODETECT, true);
if(!buffer.load(view,false))
return null;
@@ -1865,14 +1947,15 @@
if(editPane != null && editPane.getBuffer() != null)
{
path = editPane.getBuffer().getDirectory();
- VFS vfs = VFSManager.getVFSForPath(path);
- // don't want 'New File' to create a read only buffer
- // if current file is on SQL VFS or something
- if((vfs.getCapabilities() & VFS.WRITE_CAP) == 0)
- path = System.getProperty("user.home");
- }
- else
- path = null;
+ } else {
+ File backupDir = MiscUtilities.prepareBackupDirectory(System.getProperty("user.home"));
+ path = backupDir.getPath();
+ }
+ VFS vfs = VFSManager.getVFSForPath(path);
+ // don't want 'New File' to create a read only buffer
+ // if current file is on SQL VFS or something
+ if((vfs.getCapabilities() & VFS.WRITE_CAP) == 0)
+ path = System.getProperty("user.home");
return newFile(editPane,path);
}
@@ -1949,8 +2032,12 @@
return false;
}
- if(buffer.isDirty())
- {
+ boolean doNotSave = false;
+ if(buffer.isDirty()) {
+ if (buffer.isUntitled() && jEdit.getBooleanProperty("suppressNotSavedConfirmUntitled")) {
+ _closeBuffer(view, buffer, true);
+ return true;
+ }
Object[] args = { buffer.getName() };
int result = GUIUtilities.confirm(view,"notsaved",args,
JOptionPane.YES_NO_CANCEL_OPTION,
@@ -1967,11 +2054,19 @@
return false;
}
}
- else if(result != JOptionPane.NO_OPTION)
+ else if(result != JOptionPane.NO_OPTION) {
+ // cancel
return false;
}
+ else if(result == JOptionPane.NO_OPTION) {
+ // when we close an untitled buffer, cos we do not want to save it by answering No,
+ // mark to delete the autosave file
+ doNotSave = true;
+ }
+
+ }
- _closeBuffer(view,buffer);
+ _closeBuffer(view,buffer, doNotSave);
return true;
} //}}}
@@ -2042,6 +2137,22 @@
*/
public static void _closeBuffer(View view, Buffer buffer)
{
+ _closeBuffer(view, buffer, true);
+ }
+
+ //{{{ _closeBuffer() method
+ /**
+ * Closes the buffer, even if it has unsaved changes.
+ * @param view The view, may be null
+ * @param buffer The buffer
+ * @param doNotSave we do not want to keep the autosave file
+ *
+ * @exception NullPointerException if the buffer is null
+ *
+ * @since jEdit 2.2pre1
+ */
+ public static void _closeBuffer(View view, Buffer buffer, boolean doNotSave)
+ {
if(buffer.isClosed())
{
// can happen if the user presses C+w twice real
@@ -2084,7 +2195,7 @@
removeBufferFromList(buffer);
- buffer.close();
+ buffer.close(doNotSave);
DisplayManager.bufferClosed(buffer);
bufferSetManager.removeBuffer(buffer);
EditBus.send(new BufferUpdate(buffer,view,BufferUpdate.CLOSED));
@@ -2120,10 +2231,14 @@
boolean saveRecent = !(isExiting && jEdit.getBooleanProperty("restore"));
+ boolean autosaveUntitled = jEdit.getBooleanProperty("autosaveUntitled");
+
+ boolean suppressNotSavedConfirmUntitled = jEdit.getBooleanProperty("suppressNotSavedConfirmUntitled") || autosaveUntitled;
+
Buffer buffer = buffersFirst;
while(buffer != null)
{
- if(buffer.isDirty())
+ if(buffer.isDirty() && !( buffer.isUntitled() && suppressNotSavedConfirmUntitled ) )
{
dirty = true;
break;
@@ -2131,8 +2246,7 @@
buffer = buffer.next;
}
- if(dirty)
- {
+ if(dirty) {
boolean ok = new CloseDialog(view).isOK();
if(!ok)
return false;
@@ -2155,7 +2269,7 @@
while(buffer != null)
{
- if(!buffer.isNewFile() && saveRecent)
+ if((!buffer.isNewFile() || (buffer.isUntitled() && autosaveUntitled)) && saveRecent)
{
Integer _caret = (Integer)buffer.getProperty(Buffer.CARET);
int caret = _caret == null ? 0 : _caret.intValue();
@@ -2313,6 +2427,7 @@
path = path.toLowerCase();
}
+ // TODO: danson, this causes ProjectViewer to block, not sure why yet
synchronized(bufferListLock)
{
return bufferHash.get(path);
@@ -4263,11 +4378,16 @@
String[] newArgs = new String[additionalFiles.size() + args.length];
additionalFiles.copyInto(newArgs);
System.arraycopy(args, 0, newArgs, additionalFiles.size(), args.length);
- buffer = openFiles(null,userDir,newArgs);
+ // We need to pass view to openFiles, because when a file is openened via
+ // the command line and is not the current buffer (because other buffers are
+ // already openened) and '+line' command line argument is given, a view is
+ // needed to scroll to the given line.
+ buffer = openFiles(view,userDir,newArgs);
}
else
{
- buffer = openFiles(null,userDir,args);
+ // See comment above in if part on passing view.
+ buffer = openFiles(view,userDir,args);
}
if(buffer != null)
@@ -4615,6 +4735,23 @@
if (!view.confirmToCloseDirty())
return false;
+ // move the dirty untitled buffers to the next open view's current editpane bufferset (first or last)
+ boolean moveUntitled = jEdit.getBooleanProperty("autosaveUntitled");
+ if (moveUntitled && !getBufferSetManager().getScope().equals(BufferSet.Scope.global)) {
+ View targetView;
+ if ( view.equals(viewsFirst) ) {
+ targetView = viewsLast;
+ } else {
+ targetView = viewsFirst;
+ }
+ BufferSet bufferSet = targetView.getEditPane().getBufferSet();
+ for (Buffer buffer : view.getBuffers()) {
+ if ( buffer.isUntitled() && buffer.isDirty()) {
+ bufferSet.addBuffer(buffer);
+ }
+ }
+ }
+
view.close();
view.dispose();
removeViewFromList(view);
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/jedit.manifest jedit-5.5.0+dfsg/org/gjt/sp/jedit/jedit.manifest
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/jedit.manifest 2017-03-18 13:30:34.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/jedit.manifest 2018-04-08 23:57:44.000000000 +0000
@@ -1 +1,2 @@
Main-Class: org.gjt.sp.jedit.jEdit
+Add-Opens: java.desktop/sun.awt
\ No newline at end of file
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/jedit.props jedit-5.5.0+dfsg/org/gjt/sp/jedit/jedit.props
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/jedit.props 2017-03-18 13:30:28.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/jedit.props 2018-04-08 23:57:24.000000000 +0000
@@ -91,7 +91,7 @@
# Number of backups to make, 0=no backups
backups=1
-# Backup directory
+# Backup directory suggestion: $JEDIT_SETTINGS/backups
backup.directory=
# Backup filename prefix and suffix
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/MiscUtilities.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/MiscUtilities.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/MiscUtilities.java 2017-03-18 13:30:28.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/MiscUtilities.java 2018-04-08 23:57:06.000000000 +0000
@@ -3,7 +3,7 @@
* :tabSize=4:indentSize=4:noTabs=false:
* :folding=explicit:collapseFolds=1:
*
- * Copyright © 1999-2013 Slava Pestov, Richard S. Hall, Dirk Moebius,
+ * Copyright \ 1999-2013 Slava Pestov, Richard S. Hall, Dirk Moebius,
* jgellene, ezust, vanza, kpouer, Vampire0, Jarekczek, k_satoda, voituk,
* Thomas Meyer, Martin Raspe
* And possibly other members of the All Volunteer Developer Team (tm)
@@ -56,7 +56,7 @@
* {@link #constructPath(String,String)}
*
*
- * @version $Id: MiscUtilities.java 24464 2016-07-19 14:47:33Z ezust $
+ * @version $Id: MiscUtilities.java 24840 2018-03-04 20:08:53Z ezust $
*/
public class MiscUtilities
{
@@ -175,15 +175,19 @@
}
String varName = m.group(2);
String expansion = System.getenv(varName);
- if (expansion == null)
- { // try everything uppercase?
- varName = varName.toUpperCase();
- String uparg = arg.toUpperCase();
- m = p.matcher(uparg);
- expansion = System.getenv(varName);
+ if (expansion == null) {
+ if (varName.equalsIgnoreCase("jedit_settings") && jEdit.getSettingsDirectory() != null) {
+ expansion = jEdit.getSettingsDirectory();
+ }
+ else {
+ // try everything uppercase?
+ varName = varName.toUpperCase();
+ String uparg = arg.toUpperCase();
+ m = p.matcher(uparg);
+ expansion = System.getenv(varName);
+ }
}
- if (expansion != null)
- {
+ if (expansion != null) {
expansion = expansion.replace("\\", "\\\\");
return m.replaceFirst(expansion);
}
@@ -668,56 +672,116 @@
}
}// }}}
+ //{{{ prepareAutosaveDirectory method
+ /**
+ * Prepares the directory to autosave the specified file.
+ * A jEdit property is used to determine the directory.
+ * If there is none specified by props,
+ * then the current directory is used, but only for local files.
+ * The directory is created if it does not exist.
+ * @param path path to the buffer
+ * @return Autosave directory. null
is returned for
+ * non-local files if no backup directory is specified in properties.
+ * @since jEdit 5.5
+ */
+ public static File prepareAutosaveDirectory(String path)
+ {
+ boolean isLocal = VFSManager.getVFSForPath(path) instanceof FileVFS;
+ File file;
+ if (isLocal)
+ file = new File(path);
+ else
+ file = new File(replaceNonPathChars(path, "_"));
+ File dir = file;
+ if (!dir.isDirectory())
+ dir=dir.getParentFile();
+
+ // Check for autosave.directory
+ String autosaveDirectory = jEdit.getProperty("autosave.directory");
+ if(autosaveDirectory != null)
+ {
+ autosaveDirectory = MiscUtilities.expandVariables(autosaveDirectory);
+ if (path.startsWith(autosaveDirectory))
+ return dir;
+ // Perhaps here we would want to guard with
+ // a property for parallel backups or not.
+ autosaveDirectory = MiscUtilities.concatPath(
+ autosaveDirectory, dir.getAbsolutePath());
+ dir = new File(autosaveDirectory);
+ if (!dir.exists())
+ dir.mkdirs();
+ }
+ else {
+ if (!isLocal)
+ return null;
+ }
+ return dir;
+
+ } //}}}
+
+
+ //{{{ getBackupDirectory method
+ /**
+ * Get backup.directory property, or null.
+ * @return backup.directory property, or null
+ * @since jEdit 5.5pre1
+ */
+ public static String getBackupDirectory()
+ {
+ String backupDirectory = jEdit.getProperty("backup.directory");
+ if(backupDirectory == null || backupDirectory.length() == 0)
+ {
+ return null;
+ } else {
+ return MiscUtilities.expandVariables(backupDirectory);
+ }
+ }// }}}
+
//{{{ prepareBackupDirectory method
/**
* Prepares the directory to backup the specified file.
- * jedit property is used to determine the directory.
+ * A jEdit property is used to determine the directory.
* If there is no dedicated backup directory specified by props,
* then the current directory is used, but only for local files.
- * The directory is created if not exists.
+ * The directory is created if it does not exist.
+ * @param path path to the buffer
* @return Backup directory. null
is returned for
* non-local files if no backup directory is specified in properties.
* @since 5.0pre1
*/
public static File prepareBackupDirectory(String path)
{
- String backupDirectory = jEdit.getProperty("backup.directory");
- File dir;
boolean isLocal = VFSManager.getVFSForPath(path) instanceof FileVFS;
File file;
if (isLocal)
file = new File(path);
else
file = new File(replaceNonPathChars(path, "_"));
-
- // Check for backup.directory, and create that
- // directory if it doesn't exist
- if(backupDirectory == null || backupDirectory.length() == 0)
+ File dir = file;
+ if (!dir.isDirectory())
+ dir=dir.getParentFile();
+
+ // Check for backup.directory
+ String backupDirectory = getBackupDirectory();
+ if(backupDirectory == null)
{
if (!isLocal)
return null;
- else {
- backupDirectory = file.getParent();
- dir = new File(backupDirectory);
- }
}
else
{
- backupDirectory = MiscUtilities.constructPath(
- System.getProperty("user.home"), backupDirectory);
-
+ if (path.startsWith(backupDirectory))
+ return dir;
// Perhaps here we would want to guard with
// a property for parallel backups or not.
backupDirectory = MiscUtilities.concatPath(
- backupDirectory,file.getParent());
-
+ backupDirectory, dir.getAbsolutePath());
dir = new File(backupDirectory);
-
if (!dir.exists())
dir.mkdirs();
}
-
return dir;
+
} //}}}
//{{{ prepareBackupFile methods
@@ -958,9 +1022,35 @@
*/
public static boolean isBackup(String filename)
{
- if (filename.startsWith("#")) return true;
- if (filename.endsWith("~")) return true;
- if (filename.endsWith(".bak")) return true;
+ if (filename == null)
+ {
+ return false;
+ }
+
+ // check for #Untitled=X# and #filename#save#
+ if (filename.matches("[#]Untitled-\\d+[#]") || filename.matches("[#].*?[#]save[#]"))
+ {
+ return true;
+ }
+
+ // check for user supplied prefix and suffix
+ String backupPrefix = jEdit.getProperty("backup.prefix");
+ String backupSuffix = jEdit.getProperty("backup.suffix");
+ if (backupPrefix != null && backupSuffix != null)
+ {
+ return filename.startsWith(backupPrefix) && filename.endsWith(backupSuffix);
+ }
+
+ if (backupPrefix != null && filename.startsWith(backupPrefix))
+ {
+ return true;
+ }
+
+ if (backupSuffix != null && filename.startsWith(backupSuffix))
+ {
+ return true;
+ }
+
return false;
} //}}}
@@ -1518,8 +1608,13 @@
Properties sorted = new Properties() {
@Override
public synchronized Enumeration keys() {
- return Collections.enumeration(new TreeSet(super.keySet()));
+ return Collections.enumeration(new TreeSet(props.keySet()));
}
+ @Override
+ public synchronized Set> entrySet() {
+ return (new TreeMap(props)).entrySet();
+ }
+
};
sorted.putAll(props);
sorted.store(out, comments);
@@ -1546,6 +1641,8 @@
Map env = pb.environment();
if (OperatingSystem.isUnix())
prefixMap.put(System.getProperty("user.home"), "~");
+ if (jEdit.getSettingsDirectory() != null)
+ prefixMap.put(jEdit.getSettingsDirectory(), "JEDIT_SETTINGS");
for (Map.Entry entry: env.entrySet())
{
String k = entry.getKey();
@@ -1575,6 +1672,7 @@
}
prefixMap.put(v, k);
}
+
} //}}}
//{{{ compress() method
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/options/BufferOptionPane.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/options/BufferOptionPane.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/options/BufferOptionPane.java 2017-03-18 13:30:28.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/options/BufferOptionPane.java 2018-04-08 23:57:00.000000000 +0000
@@ -58,6 +58,7 @@
private Buffer buffer;
private JCheckBox elasticTabstops;
private JComboBox autoIndent;
+ private JCheckBox locked;
public BufferOptionPane()
{
@@ -223,6 +224,12 @@
elasticTabstops.setSelected(buffer.getBooleanProperty("elasticTabstops"));
addComponent(elasticTabstops);
//}}}
+
+ //{{{ Locked setting
+ locked = new JCheckBox(jEdit.getProperty("buffer-options.locked"));
+ locked.setSelected(buffer.getBooleanProperty("locked"));
+ addComponent(locked);
+ //}}}
} //}}}
//{{{ _save() method
@@ -304,8 +311,10 @@
buffer.setBooleanProperty("elasticTabstops",elasticTabstops.isSelected());
buffer.setStringProperty("autoIndent", (String)autoIndent.getSelectedItem());
+ buffer.setBooleanProperty("locked", locked.isSelected()); // requires propertiesChanged() call afterwards
+
index = mode.getSelectedIndex();
- buffer.setMode(modes[index]);
+ buffer.setMode(modes[index]); // NOTE: setMode() makes implicit call of propertiesChanged()
switch(checkModStatus.getSelectedIndex())
{
case 0:
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/options/LargeFilesOptionPane.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/options/LargeFilesOptionPane.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/options/LargeFilesOptionPane.java 2017-03-18 13:30:28.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/options/LargeFilesOptionPane.java 2018-04-08 23:57:00.000000000 +0000
@@ -1,9 +1,9 @@
/*
- * EditingOptionPane.java - Mode-specific options panel
+ * LargeFilesOptionPane.java - Options for handling large files
* :tabSize=4:indentSize=4:noTabs=false:
* :folding=explicit:collapseFolds=1:
*
- * Copyright (C) 1998, 2002 Slava Pestov
+ * Copyright (C) 2013 Matthieu Casanova
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -31,10 +31,10 @@
//}}}
/**
- * The EditingOptionPane has been split up so the large files option pane is
- * now a separate pane.
- * @author Slava Pestov
- * @version $Id: EditingOptionPane.java 23381 2013-12-09 12:43:14Z kpouer $
+ * The options pane for handling large files.
+ *
+ * @author kpouer
+ * now a separate pane split off from $Id: EditingOptionPane.java 23381 2013-12-09 12:43:14Z kpouer $
*/
public class LargeFilesOptionPane extends AbstractOptionPane
{
@@ -49,9 +49,17 @@
protected void _init()
{
//{{{ Large file mode
- addSeparator(jEdit.getProperty("options.editing.largefilemode.title"));
- addComponent(new JLabel(jEdit.getProperty("options.editing.largefilemode")));
+ addSeparator("options.editing.largefilemode.title");
+
+ String labelText = jEdit.getProperty("options.editing.largefilemode",
+ new Object[] {jEdit.getIntegerProperty("largeBufferSize"),
+ jEdit.getIntegerProperty("longLineLimit")});
+ JLabel titleLabel = new JLabel(labelText);
+ titleLabel.setToolTipText(jEdit.getProperty("options.editing.largefilemode.tooltip"));
+ addComponent(titleLabel);
+
+
addComponent(askLargeFileMode = new JRadioButton(jEdit.getProperty("options.editing.largefilemode.option.ask")));
addComponent(fullSyntaxLargeFileMode = new JRadioButton(jEdit.getProperty("options.editing.largefilemode.option.full")));
addComponent(limitedSyntaxLargeFileMode = new JRadioButton(jEdit.getProperty("options.editing.largefilemode.option.limited")));
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/options/SaveBackupOptionPane.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/options/SaveBackupOptionPane.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/options/SaveBackupOptionPane.java 2017-03-18 13:30:28.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/options/SaveBackupOptionPane.java 2018-04-08 23:57:00.000000000 +0000
@@ -35,7 +35,7 @@
* The Save and Backup option panel.
*
* @author Slava Pestov
- * @author $Id: SaveBackupOptionPane.java 21831 2012-06-18 22:54:17Z ezust $
+ * @author $Id: SaveBackupOptionPane.java 24843 2018-03-19 00:04:03Z ezust $
*/
public class SaveBackupOptionPane extends AbstractOptionPane
{
@@ -49,9 +49,9 @@
@Override
protected void _init()
{
-
+
/* Save-As Uses FSB */
-
+
saveAsUsesFSB = new JCheckBox(jEdit.getProperty(
"options.save-back.saveAsUsesFSB"));
saveAsUsesFSB.setSelected(jEdit.getBooleanProperty(
@@ -59,14 +59,14 @@
saveAsUsesFSB.setToolTipText(jEdit.getProperty(
"options.save-back.saveAsUsesFSB.tooltip"));
addComponent(saveAsUsesFSB);
-
+
/* Two-stage save */
twoStageSave = new JCheckBox(jEdit.getProperty(
"options.save-back.twoStageSave"));
twoStageSave.setSelected(jEdit.getBooleanProperty(
"twoStageSave"));
twoStageSave.setToolTipText(jEdit.getProperty(
-
+
"options.save-back.twoStageSave.tooltip"));
addComponent(twoStageSave);
@@ -77,24 +77,6 @@
"confirmSaveAll"));
addComponent(confirmSaveAll);
- /* Autosave interval */
- autosave = new NumericTextField(jEdit.getProperty("autosave"), true);
- addComponent(jEdit.getProperty("options.save-back.autosave"),autosave);
-
- /* Autosave untitled buffers */
- autosaveUntitled = new JCheckBox(jEdit.getProperty(
- "options.save-back.autosaveUntitled"));
- autosaveUntitled.setSelected(jEdit.getBooleanProperty("autosaveUntitled"));
- addComponent(autosaveUntitled);
-
- suppressNotSavedConfirmUntitled = new JCheckBox(jEdit.getProperty(
- "options.save-back.suppressNotSavedConfirmUntitled"));
- suppressNotSavedConfirmUntitled.setToolTipText(jEdit.getProperty(
- "options.save-back.suppressNotSavedConfirmUntitled.tooltip"));
- suppressNotSavedConfirmUntitled.setSelected(
- jEdit.getBooleanProperty("suppressNotSavedConfirmUntitled"));
- addComponent(suppressNotSavedConfirmUntitled);
-
useMD5forDirtyCalculation = new JCheckBox(jEdit.getProperty(
"options.save-back.useMD5forDirtyCalculation"));
useMD5forDirtyCalculation.setToolTipText(jEdit.getProperty(
@@ -104,23 +86,68 @@
addComponent(useMD5forDirtyCalculation);
+ /* Close Dirty Untitled Buffers without confirm */
+ suppressNotSavedConfirmUntitled = new JCheckBox(jEdit.getProperty(
+ "options.save-back.suppressNotSavedConfirmUntitled"));
+ suppressNotSavedConfirmUntitled.setToolTipText(jEdit.getProperty("options.save-back.suppressNotSavedConfirmUntitled.tooltip"));
+ suppressNotSavedConfirmUntitled.setSelected(jEdit.getBooleanProperty("suppressNotSavedConfirmUntitled"));
+ addComponent(suppressNotSavedConfirmUntitled);
- /* Backup count */
- backups = new NumericTextField(jEdit.getProperty("backups"), true);
- addComponent(jEdit.getProperty("options.save-back.backups"),backups);
+ addSeparator("options.autosave");
+
+ /* Autosave Directory */
+
+ autosaveDirectory = new JTextField(jEdit.getProperty(
+ "autosave.directory"));
+ autosaveDirectory.setToolTipText(
+ jEdit.getProperty("options.save-back.backupDirectory.tooltip"));
+
+ JButton browseAutosaveDirectory = new JButton("...");
+ browseAutosaveDirectory.addActionListener(new MyActionListener2());
+ JPanel panel = new JPanel(new BorderLayout());
+ panel.add(autosaveDirectory);
+ panel.add(browseAutosaveDirectory, BorderLayout.EAST);
+ addComponent(jEdit.getProperty("options.save-back.autosaveDirectory"),
+ panel);
+
+
+ /* Autosave untitled buffers */
+ autosaveUntitled = new JCheckBox(jEdit.getProperty(
+ "options.save-back.autosaveUntitled"));
+ autosaveUntitled.setToolTipText(jEdit.getProperty("options.save-back.autosaveUntitled.tooltip"));
+
+ autosaveUntitled.setSelected(jEdit.getBooleanProperty("autosaveUntitled"));
+ addComponent(autosaveUntitled);
+
+ /* Autosave interval */
+ autosave = new NumericTextField(jEdit.getProperty("autosave"), true);
+ autosave.setToolTipText(jEdit.getProperty("options.save-back.autosave.tooltip"));
+ addComponent(jEdit.getProperty("options.save-back.autosave"),autosave);
+
+ addSeparator("options.backup");
/* Backup directory */
backupDirectory = new JTextField(jEdit.getProperty(
"backup.directory"));
+ backupDirectory.setToolTipText(
+ jEdit.getProperty("options.save-back.backupDirectory.tooltip"));
+
JButton browseBackupDirectory = new JButton("...");
browseBackupDirectory.addActionListener(new MyActionListener());
- JPanel panel = new JPanel(new BorderLayout());
+ panel = new JPanel(new BorderLayout());
panel.add(backupDirectory);
panel.add(browseBackupDirectory, BorderLayout.EAST);
addComponent(jEdit.getProperty("options.save-back.backupDirectory"),
panel);
+
+ /* Backup count */
+ backups = new NumericTextField(jEdit.getProperty("backups"), true);
+ backups.setToolTipText(jEdit.getProperty("options.save-back.backups.tooltip"));
+ addComponent(jEdit.getProperty("options.save-back.backups"),backups);
+
+
/* Backup filename prefix */
backupPrefix = new JTextField(jEdit.getProperty("backup.prefix"));
addComponent(jEdit.getProperty("options.save-back.backupPrefix"),
@@ -148,15 +175,18 @@
jEdit.setBooleanProperty("confirmSaveAll",confirmSaveAll.isSelected());
jEdit.setProperty("autosave", this.autosave.getText());
jEdit.setProperty("backups",backups.getText());
+
jEdit.setProperty("backup.directory",backupDirectory.getText());
+ String autosaveDirectoryOriginal = jEdit.getProperty("autosave.directory");
+ jEdit.setProperty("autosave.directory", autosaveDirectory.getText());
jEdit.setProperty("backup.prefix",backupPrefix.getText());
jEdit.setProperty("backup.suffix",backupSuffix.getText());
jEdit.setBooleanProperty("backupEverySave", backupEverySave.isSelected());
boolean newAutosave = autosaveUntitled.isSelected();
boolean oldAutosave = jEdit.getBooleanProperty("autosaveUntitled");
jEdit.setBooleanProperty("autosaveUntitled", newAutosave);
- jEdit.setBooleanProperty("suppressNotSavedConfirmUntitled",
- suppressNotSavedConfirmUntitled.isSelected());
+ jEdit.setBooleanProperty("suppressNotSavedConfirmUntitled", suppressNotSavedConfirmUntitled.isSelected());
+
jEdit.setBooleanProperty("useMD5forDirtyCalculation",
useMD5forDirtyCalculation.isSelected());
if ((!newAutosave || jEdit.getIntegerProperty("autosave",0) == 0) && oldAutosave)
@@ -170,6 +200,19 @@
}
}
}
+
+ // if autosave dir changed, we should issue to perform an autosave for all dirty and all untitled buffers
+ // to have the autosaves at the new location
+ if (!autosaveDirectoryOriginal.equals(autosaveDirectory.getText())) {
+ Buffer[] buffers = jEdit.getBuffers();
+ for (Buffer buffer : buffers) {
+ // save dirty
+ if ( buffer.isDirty() ) {
+ buffer.autosave(true);
+ }
+ }
+ }
+
} //}}}
//{{{ Private members
@@ -179,8 +222,10 @@
private JTextField autosave;
private JCheckBox autosaveUntitled;
private JCheckBox suppressNotSavedConfirmUntitled;
+
private JCheckBox useMD5forDirtyCalculation;
private JTextField backups;
+ private JTextField autosaveDirectory;
private JTextField backupDirectory;
private JTextField backupPrefix;
private JTextField backupSuffix;
@@ -193,13 +238,25 @@
public void actionPerformed(ActionEvent e)
{
String[] choosenFolder =
- GUIUtilities.showVFSFileDialog(null,
- backupDirectory.getText(),
- VFSBrowser.CHOOSE_DIRECTORY_DIALOG,
- false);
+ GUIUtilities.showVFSFileDialog(null, backupDirectory.getText(),
+ VFSBrowser.CHOOSE_DIRECTORY_DIALOG, false);
if (choosenFolder != null)
backupDirectory.setText(choosenFolder[0]);
+
}
} //}}}
+ //{{{ MyActionListener class
+ private class MyActionListener2 implements ActionListener
+ {
+ public void actionPerformed(ActionEvent e)
+ {
+ String[] choosenFolder =
+ GUIUtilities.showVFSFileDialog(null, autosaveDirectory.getText(),
+ VFSBrowser.CHOOSE_DIRECTORY_DIALOG, false);
+ if (choosenFolder != null)
+ autosaveDirectory.setText(choosenFolder[0]);
+
+ }
+ } //}}}
}
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/options/ShortcutsOptionPane.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/options/ShortcutsOptionPane.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/options/ShortcutsOptionPane.java 2017-03-18 13:30:28.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/options/ShortcutsOptionPane.java 2018-04-08 23:57:00.000000000 +0000
@@ -50,7 +50,7 @@
/**
* Key binding editor.
* @author Slava Pestov
- * @version $Id: ShortcutsOptionPane.java 24411 2016-06-19 11:02:53Z kerik-sf $
+ * @version $Id: ShortcutsOptionPane.java 24751 2017-10-12 10:28:02Z ezust $
*/
@SuppressWarnings("serial")
public class ShortcutsOptionPane extends AbstractOptionPane
@@ -102,6 +102,8 @@
keymapBox.add(duplicateKeymap);
keymapBox.add(resetKeymap);
keymapBox.add(deleteKeymap);
+ keymaps.setToolTipText(jEdit.getProperty("options.shortcuts.keymap.tooltip"));
+ keymapBox.setToolTipText(jEdit.getProperty("options.shortcuts.keymap.tooltip"));
// combobox to choose action set
selectModel = new JComboBox<>(models);
@@ -152,7 +154,20 @@
filterPanel.add(filterTF);
filterPanel.add(clearButton);
- keyTable = new JTable(filteredModel);
+ keyTable = new JTable(filteredModel)
+ {
+ public String getToolTipText(MouseEvent e)
+ {
+ java.awt.Point p = e.getPoint();
+ int rowIndex = rowAtPoint(p);
+ int colIndex = columnAtPoint(p);
+ int modelColIndex = convertColumnIndexToModel(colIndex);
+
+ ShortcutsModel model = (ShortcutsModel) ((FilteredTableModel)getModel()).getDelegated();
+
+ return modelColIndex == 0 ? model.getToolTip(rowIndex) : null;
+ }
+ };
filteredModel.setTable(keyTable);
keyTable.setRowHeight(GenericGUIUtilities.defaultRowHeight());
keyTable.getTableHeader().setReorderingAllowed(false);
@@ -307,32 +322,33 @@
continue;
label = GenericGUIUtilities.prettifyMenuLabel(label);
- addBindings(actionSet, name, label, bindings);
+ String tooltip = ea.getToolTip();
+ addBindings(actionSet, name, label, tooltip, bindings);
}
return new ShortcutsModel(modelLabel,bindings);
} //}}}
//{{{ addBindings() method
- private void addBindings(String actionSet, String name, String label, Collection bindings)
+ private void addBindings(String actionSet, String name, String label, String tooltip, Collection bindings)
{
KeyBinding[] b = new KeyBinding[2];
- b[0] = createBinding(actionSet, name,label,
+ b[0] = createBinding(actionSet, name,label, tooltip,
selectedKeymap.getShortcut(name + ".shortcut"));
- b[1] = createBinding(actionSet, name,label,
+ b[1] = createBinding(actionSet, name,label, tooltip,
selectedKeymap.getShortcut(name + ".shortcut2"));
bindings.add(b);
} //}}}
//{{{ createBinding() method
- private KeyBinding createBinding(String actionSet, String name, String label, String shortcut)
+ private KeyBinding createBinding(String actionSet, String name, String label, String tooltip, String shortcut)
{
if(shortcut != null && shortcut.isEmpty())
shortcut = null;
- KeyBinding binding = new KeyBinding(name,label,shortcut,false);
+ KeyBinding binding = new KeyBinding(name,label,tooltip,shortcut,false);
binding.actionSet = actionSet;
allBindings.add(binding);
@@ -538,7 +554,6 @@
// The only place this gets used is in JTable's own display code, so
// we translate the shortcut to platform-specific form for display here.
KeyBinding bindingAt = getBindingAt(row, 0);
- setToolTipText(bindingAt.label);
switch(col)
{
case 0:
@@ -554,6 +569,13 @@
}
}
+ public String getToolTip(int row)
+ {
+ KeyBinding bindingAt = getBindingAt(row, 0);
+
+ return bindingAt.tooltip;
+ }
+
@Override
public void setValueAt(Object value, int row, int col)
{
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/options/TextAreaOptionPane.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/options/TextAreaOptionPane.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/options/TextAreaOptionPane.java 2017-03-18 13:30:28.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/options/TextAreaOptionPane.java 2018-04-08 23:57:00.000000000 +0000
@@ -41,7 +41,7 @@
/**
* @author Slava Pestov
- * @version $Id: TextAreaOptionPane.java 24499 2016-08-15 13:28:43Z kerik-sf $
+ * @version $Id: TextAreaOptionPane.java 24775 2017-11-04 01:43:57Z ezust $
*/
public class TextAreaOptionPane extends AbstractOptionPane
{
@@ -417,7 +417,6 @@
if (selected != null)
{
- selected = selected.deriveFont(Font.PLAIN, 12);
fontsModel.addElement(selected);
fonts.setSelectedIndex(fontsModel.size() - 1);
}
@@ -497,7 +496,7 @@
index,
isSelected,
cellHasFocus);
- setText(f.getFamily());
+ setText(f.getFamily() + " " + f.getSize());
return this;
}
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/perspective.dtd jedit-5.5.0+dfsg/org/gjt/sp/jedit/perspective.dtd
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/perspective.dtd 2017-03-18 13:30:34.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/perspective.dtd 2018-04-08 23:57:45.000000000 +0000
@@ -7,7 +7,8 @@
+ AUTORELOAD_DIALOG %att-bool; "TRUE"
+ UNTITLED %att-bool; "FALSE" >
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/PerspectiveManager.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/PerspectiveManager.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/PerspectiveManager.java 2017-03-18 13:30:34.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/PerspectiveManager.java 2018-04-08 23:57:31.000000000 +0000
@@ -23,12 +23,9 @@
package org.gjt.sp.jedit;
import java.io.Closeable;
-import java.io.StreamTokenizer;
-import java.io.StringReader;
import java.io.IOException;
import java.util.Collection;
import java.util.LinkedList;
-import java.util.Stack;
import org.gjt.sp.util.IOUtilities;
import org.gjt.sp.util.Log;
@@ -40,7 +37,7 @@
/** Manages persistence of open buffers and views across jEdit sessions.
* @since jEdit 4.2pre1
* @author Slava Pestov
- * @version $Id: PerspectiveManager.java 22357 2012-10-13 04:58:01Z ezust $
+ * @version $Id: PerspectiveManager.java 24800 2017-12-29 15:38:11Z ezust $
*/
public class PerspectiveManager
{
@@ -130,7 +127,7 @@
Collection savedBuffers = new LinkedList();
for (Buffer buffer: buffers)
{
- if (!buffer.isNewFile())
+ if (!buffer.isNewFile() || buffer.isUntitled())
{
savedBuffers.add(buffer);
}
@@ -159,8 +156,13 @@
out.write(buffer.getAutoReload() ? "TRUE" : "FALSE");
out.write("\" AUTORELOAD_DIALOG=\"");
out.write(buffer.getAutoReloadDialog() ? "TRUE" : "FALSE");
+ out.write("\" UNTITLED=\"");
+ out.write(buffer.isUntitled()? "TRUE" : "FALSE");
out.write("\">");
+
+ // for untitled, we only have the autosave file
out.write(XMLUtilities.charsToEntities(buffer.getPath(), false));
+
out.write(" ");
out.write(lineSep);
}
@@ -263,7 +265,7 @@
View.ViewConfig config;
boolean restoreFiles;
boolean restoreSplits;
- String autoReload, autoReloadDialog;
+ String autoReload, autoReloadDialog, untitled;
PerspectiveHandler(boolean restoreFiles)
{
@@ -311,6 +313,8 @@
autoReload = value;
else if(aname.equals("AUTORELOAD_DIALOG"))
autoReloadDialog = value;
+ else if(aname.equals("UNTITLED"))
+ untitled = value;
}
/**
@@ -335,7 +339,12 @@
{
if (restoreFiles && !skipRemote(charData.toString()))
{
- Buffer restored = jEdit.openTemporary(null,null, charData.toString(), false);
+ boolean bufferUntitled = false;
+ if(untitled != null) {
+ bufferUntitled = "TRUE".equals(untitled);
+ }
+
+ Buffer restored = jEdit.openTemporary(null,null, charData.toString(), bufferUntitled, null, bufferUntitled);
// if the autoReload attributes are not present, don't set anything
// it's sufficient to check whether they are present on the first BUFFER element
if (restored != null)
@@ -344,6 +353,8 @@
restored.setAutoReload("TRUE".equals(autoReload));
if(autoReloadDialog != null)
restored.setAutoReloadDialog("TRUE".equals(autoReloadDialog));
+ if(untitled != null)
+ restored.setUntitled(bufferUntitled);
jEdit.commitTemporary(restored);
}
}
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/pluginmgr/InstallPanel.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/pluginmgr/InstallPanel.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/pluginmgr/InstallPanel.java 2017-03-18 13:30:24.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/pluginmgr/InstallPanel.java 2018-04-08 23:57:31.000000000 +0000
@@ -63,7 +63,7 @@
//}}}
/**
- * @version $Id: InstallPanel.java 24541 2016-09-14 09:58:29Z makarius $
+ * @version $Id: InstallPanel.java 24799 2017-12-29 15:17:38Z ezust $
*/
class InstallPanel extends JPanel implements EBComponent
{
@@ -545,7 +545,7 @@
case 2:
return entry.set;
case 3:
- if (entry.installedVersion != null)
+ if ((entry.installedVersion != null) && !entry.installedVersion.equals(entry.version))
return entry.installedVersion + "->" + entry.version;
return entry.version;
case 4:
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/pluginmgr/PluginList.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/pluginmgr/PluginList.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/pluginmgr/PluginList.java 2017-03-18 13:30:24.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/pluginmgr/PluginList.java 2018-04-08 23:57:31.000000000 +0000
@@ -40,7 +40,7 @@
/**
* Plugin list downloaded from server.
* @since jEdit 3.2pre2
- * @version $Id: PluginList.java 24598 2017-01-29 16:19:46Z vampire0 $
+ * @version $Id: PluginList.java 24766 2017-10-19 00:12:44Z daleanson $
*/
class PluginList
{
@@ -533,8 +533,9 @@
}
else if(what.equals("jdk"))
{
- String javaVersion = System.getProperty("java.version").substring(0,3);
-
+ String javaVersion = System.getProperty("java.version");
+ // openjdk 9 returns just "9", not 1.X.X like previous versions
+ javaVersion = javaVersion.length() >= 3 ? javaVersion.substring(0, 3) : javaVersion;
if((from == null || StandardUtilities.compareStrings(
javaVersion,from,false) >= 0)
&&
@@ -615,6 +616,7 @@
return ((id != null) && !id.equals(MirrorList.Mirror.NONE)) ? id : "default";
}
+ // TODO: this isn't used, should it be?
private static String getAutoSelectedMirror()
throws java.io.IOException
{
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/print/BasicPrintPreviewPaneUI.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/print/BasicPrintPreviewPaneUI.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/print/BasicPrintPreviewPaneUI.java 2017-03-18 13:30:24.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/print/BasicPrintPreviewPaneUI.java 2018-04-08 23:57:33.000000000 +0000
@@ -283,6 +283,7 @@
scrollPane.revalidate();
printPreviewPane.revalidate();
+ printPreviewPane.repaint();
}
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/print/BufferPrintable1_7.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/print/BufferPrintable1_7.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/print/BufferPrintable1_7.java 2017-03-18 13:30:24.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/print/BufferPrintable1_7.java 2018-04-08 23:57:33.000000000 +0000
@@ -60,10 +60,8 @@
private View view;
private Buffer buffer;
- private boolean selection;
- private int[] selectedLines;
private boolean reverse;
- private int printRangeType = PrinterDialog.ALL;
+ private PrintRangeType printRangeType = PrintRangeType.ALL;
private Font font;
private SyntaxStyle[] styles;
private boolean header;
@@ -72,6 +70,7 @@
private HashMap pages = null;
private int currentPhysicalLine;
+ private int[] printingLineNumbers = null;
private LineMetrics lm;
private final List lineList;
@@ -86,12 +85,24 @@
this.view = view;
this.buffer = buffer;
firstCall = true; // pages and page ranges are calculated only once
+ reverse = attributes.containsKey(Reverse.class);
+ if (attributes.containsKey(PrintRangeType.class))
+ {
+ printRangeType = (PrintRangeType)attributes.get(PrintRangeType.class);
+ }
+
+ // the buffer might have a buffer property for the line numbers, if so, then
+ // the buffer is a temporary buffer representing selected text and the line
+ // numbers correspond with the selected lines.
+ printingLineNumbers = (int[])buffer.getProperty("printingLineNumbers");
header = jEdit.getBooleanProperty("print.header");
footer = jEdit.getBooleanProperty("print.footer");
lineNumbers = jEdit.getBooleanProperty("print.lineNumbers");
font = jEdit.getFontProperty("print.font");
boolean color = Chromaticity.COLOR.equals(attributes.get(Chromaticity.class));
+ //Log.log(Log.DEBUG, this, "color is " + color);
+ //Log.log(Log.DEBUG, this, "chromaticity is " + attributes.get(Chromaticity.class));
styles = org.gjt.sp.util.SyntaxUtilities.loadStyles(jEdit.getProperty("print.font"), jEdit.getIntegerProperty("print.fontsize", 10), color);
styles[Token.NULL] = new SyntaxStyle(textColor, null, font);
@@ -119,36 +130,6 @@
}
}
- /**
- * Set the line numbers that are selected in the text area.
- * @param lines An array of lines that are selected in the text area.
- */
- public void setSelectedLines(int[] lines)
- {
- selectedLines = Arrays.copyOf(lines, lines.length);
- Arrays.sort(selectedLines);
- }
-
- /**
- * Set to true
to print the pages in reverse order, that is, print
- * the last page first and the first page last.
- * @param b Whether to print in reverse or not.
- */
- public void setReverse(boolean b)
- {
- reverse = b;
- }
-
- /**
- * Set the print range type.
- * @param printRangeType One of PrinterDialog.ALL, RANGE, CURRENT_PAGE, or SELECTION.
- */
- public void setPrintRangeType(int printRangeType)
- {
- this.printRangeType = printRangeType;
- selection = PrinterDialog.SELECTION == printRangeType;
- }
-
// useful to avoid having to recalculate the page ranges if they are already known
public void setPages(HashMap pages)
{
@@ -171,26 +152,8 @@
firstCall = false;
}
- // figure out the current page if that is what is requested. I'm using
- // the page that contains the caret as the current page.
- // QUESTION: use the text area first physical line instead?
- if (printRangeType == PrinterDialog.CURRENT_PAGE)
- {
- int caretLine = view.getTextArea().getCaretLine();
- for (Integer i : pages.keySet())
- {
- Range range = pages.get(i);
- if (range.contains(caretLine))
- {
- pageIndex = i;
- break;
- }
- }
- }
-
-
// adjust the page index for reverse printing
- if (reverse && printRangeType != PrinterDialog.CURRENT_PAGE)
+ if (reverse && !PrintRangeType.CURRENT_PAGE.equals(printRangeType))
{
pageIndex = pages.size() - 1 - pageIndex;
//Log.log(Log.DEBUG, this, "Reverse is on, changing page index to " + pageIndex);
@@ -198,7 +161,8 @@
// go ahead and print the page
Range range = pages.get(pageIndex);
- if ( (range == null || !inRange(pageIndex)) && printRangeType != PrinterDialog.CURRENT_PAGE )
+ //Log.log(Log.DEBUG, this, "range = " + range);
+ if ( (range == null || !inRange(pageIndex)) && !PrintRangeType.CURRENT_PAGE.equals(printRangeType) )
{
//Log.log(Log.DEBUG, this, "Returning NO_SUCH_PAGE for page " + pageIndex);
return NO_SUCH_PAGE;
@@ -345,7 +309,7 @@
// last page
Range range = new Range(startLine, currentPhysicalLine);
pages.put(new Integer(pageCount), range);
- Log.log(Log.DEBUG, this, "calculatePages, page " + pageCount + " has " + range);
+ //Log.log(Log.DEBUG, this, "calculatePages, page " + pageCount + " has " + range);
break;
}
@@ -366,7 +330,7 @@
{
Range range = new Range(startLine, Math.max(0, currentPhysicalLine - 1));
pages.put(new Integer(pageCount), range);
- Log.log(Log.DEBUG, this, "calculatePages, page " + pageCount + " has " + range);
+ //Log.log(Log.DEBUG, this, "calculatePages, page " + pageCount + " has " + range);
++ pageCount;
startLine = currentPhysicalLine;
y = 0.0;
@@ -387,6 +351,7 @@
private boolean inRange(int pageNumber)
{
PageRanges ranges = (PageRanges)attributes.get(PageRanges.class);
+ //Log.log(Log.DEBUG, this, "inRange, ranges = " + ranges);
boolean answer = false;
if (ranges == null)
{
@@ -396,6 +361,7 @@
{
answer = ranges.contains(pageNumber);
}
+ //Log.log(Log.DEBUG, this, "inRange(" + pageNumber + ") returning " + answer);
return answer;
}
@@ -414,7 +380,12 @@
gfx.setRenderingHint(KEY_TEXT_ANTIALIASING, view.getTextArea().getPainter().getAntiAlias().renderHint());
boolean useFractionalFontMetrics = jEdit.getBooleanProperty("view.fracFontMetrics");
gfx.setRenderingHint(KEY_FRACTIONALMETRICS, (useFractionalFontMetrics ? VALUE_FRACTIONALMETRICS_ON : VALUE_FRACTIONALMETRICS_OFF));
- gfx.setTransform(new AffineTransform(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f));
+
+ // TODO: why did I need this next line? Leaving it in causes the print preview
+ // to show the page with the wrong top and bottom margins, leaving it out doesn't seem
+ // to cause any problems
+ //gfx.setTransform(new AffineTransform(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f));
+
for(int i = 0; i < styles.length; i++)
{
SyntaxStyle s = styles[i];
@@ -482,9 +453,11 @@
double y = 0.0;
Range range = pages.get(pageIndex);
//Log.log(Log.DEBUG, this, "printing range for page " + pageIndex + ": " + range);
+ int start = printingLineNumbers == null ? range.getStart() : 0;
+ int end = printingLineNumbers == null ? range.getEnd() : printingLineNumbers.length - 1;
// print each line
- for (currentPhysicalLine = range.getStart(); currentPhysicalLine <= range.getEnd(); currentPhysicalLine++)
+ for (currentPhysicalLine = start; currentPhysicalLine <= end; currentPhysicalLine++)
{
if(currentPhysicalLine == buffer.getLineCount())
{
@@ -498,14 +471,6 @@
continue;
}
- // print only selected lines if printing selection
- if (selection && Arrays.binarySearch(selectedLines, currentPhysicalLine) < 0)
- {
- //Log.log(Log.DEBUG, this, "Skipping non-selected line: " + currentPhysicalLine);
- continue;
- }
-
-
// fill the line list
lineList.clear();
tokenHandler.init(styles, frc, tabExpander, lineList, (float)(pageWidth - lineNumberWidth), -1);
@@ -515,7 +480,12 @@
{
gfx.setFont(font);
gfx.setColor(lineNumberColor);
- gfx.drawString(String.valueOf(currentPhysicalLine + 1), (float)pageX, (float)(pageY + y + lineHeight));
+ int lineNo = currentPhysicalLine + 1;
+ if (printingLineNumbers != null && currentPhysicalLine < printingLineNumbers.length)
+ {
+ lineNo = printingLineNumbers[currentPhysicalLine] + 1;
+ }
+ gfx.drawString(String.valueOf(lineNo), (float)pageX, (float)(pageY + y + lineHeight));
}
if (lineList.isEmpty())
@@ -537,7 +507,7 @@
}
}
- if (currentPhysicalLine == range.getEnd())
+ if (currentPhysicalLine == end)
{
//Log.log(Log.DEBUG,this,"Finished page");
break;
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/print/BufferPrinter1_7.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/print/BufferPrinter1_7.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/print/BufferPrinter1_7.java 2017-03-18 13:30:24.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/print/BufferPrinter1_7.java 2018-04-08 23:57:33.000000000 +0000
@@ -61,10 +61,10 @@
}
}
-
+ // print to a printer
public static void print( final View view, final Buffer buffer )
{
- //Log.log(Log.DEBUG, BufferPrinter1_7.class, "print buffer " + buffer.getPath());
+ Log.log(Log.DEBUG, BufferPrinter1_7.class, "print buffer " + buffer.getPath());
// load any saved printing attributes, these are put into 'format'
loadPrintSpec();
@@ -75,7 +75,7 @@
PrinterDialog printerDialog = new PrinterDialog( view, format, false );
if ( printerDialog.isCanceled() )
{
- //Log.log(Log.DEBUG, BufferPrinter1_7.class, "print dialog canceled");
+ Log.log(Log.DEBUG, BufferPrinter1_7.class, "print dialog canceled");
return;
}
@@ -106,61 +106,17 @@
}
- // set up the printable. Some values need to be set directly from the print
- // dialog since they don't have attributes, like reverse page printing and printRangeType
- BufferPrintable1_7 printable = new BufferPrintable1_7( format, view, buffer );
- printable.setReverse( printerDialog.getReverse() );
- int printRangeType = printerDialog.getPrintRangeType();
- printable.setPrintRangeType( printRangeType );
-
- // check if printing a selection, if so, recalculate the page ranges.
+ // check if printing a selection, if so, create a new temporary buffer
+ // containing just the selection
// TODO: I'm not taking even/odd page setting into account here, nor am
// I considering any page values that may have been set in the page range.
// I don't think this is important for printing a selection, which is
// generally just a few lines rather than pages. I could be wrong...
- if ( printRangeType == PrinterDialog.SELECTION )
+ Buffer tempBuffer = buffer;
+ PrintRangeType printRangeType = (PrintRangeType)format.get(PrintRangeType.class);
+ if ( PrintRangeType.SELECTION.equals(printRangeType) )
{
-
- // calculate the actual pages with a selection or bail if there is no selection
- int selectionCount = view.getTextArea().getSelectionCount();
- if ( selectionCount == 0 )
- {
- JOptionPane.showMessageDialog( view, jEdit.getProperty( "print-error.message", new String[] {"No text is selected to print."} ), jEdit.getProperty( "print-error.title" ), JOptionPane.ERROR_MESSAGE );
- return;
- }
-
-
- // get the page ranges from the printable
- HashMap pageRanges = getPageRanges( printable, format );
- if ( pageRanges == null || pageRanges.isEmpty() )
- {
- JOptionPane.showMessageDialog( view, jEdit.getProperty( "print-error.message", new String[] {"Unable to calculate page ranges."} ), jEdit.getProperty( "print-error.title" ), JOptionPane.ERROR_MESSAGE );
- return;
- }
-
-
- // find the pages that contain the selection(s) and construct a new
- // page range for the format
- int[] selectedLines = view.getTextArea().getSelectedLines();
- StringBuilder pageRange = new StringBuilder();
- for ( Integer i : pageRanges.keySet() )
- {
- Range range = pageRanges.get( i );
- for ( int line : selectedLines )
- {
- if ( range.contains( line ) )
- {
- pageRange.append( i ).append( ',' );
- break;
- }
- }
- }
- pageRange.deleteCharAt( pageRange.length() - 1 );
- format.add( new PageRanges( pageRange.toString() ) );
-
- // also tell the printable exactly which lines are selected so it
- // doesn't have to fetch them itself
- printable.setSelectedLines( selectedLines );
+ tempBuffer = getSelectionBuffer(view, buffer);
}
// copy the doc attributes from the print format attributes
@@ -177,6 +133,10 @@
}
}
//Log.log(Log.DEBUG, BufferPrinter1_7.class, "--- end print request attributes ---");
+
+ // set up the printable
+ BufferPrintable1_7 printable = new BufferPrintable1_7( format, view, tempBuffer );
+
final Doc doc = new SimpleDoc( printable, DocFlavor.SERVICE_FORMATTED.PRINTABLE, docAttributes );
// ready to print
@@ -201,13 +161,40 @@
ThreadUtilities.runInBackground( runner );
} //}}}
+ // returns a temporary buffer containing only the lines in the current selection.
+ // This also stores the line numbers of the selected lines as a buffer property
+ // so they can be used for printing and print preview.
+ private static Buffer getSelectionBuffer(View view, Buffer buffer)
+ {
+ int[] selectedLines = view.getTextArea().getSelectedLines();
+ String path = buffer.getPath();
+ String parent = path.substring(0, path.lastIndexOf(System.getProperty("file.separator")));
+ Buffer temp = jEdit.openTemporary(view, parent, path + ".prn", true);
+ temp.setMode(buffer.getMode());
+ for (int i : selectedLines)
+ {
+ String line = buffer.getLineText(i) + '\n';
+ temp.insert(temp.getLength(), line);
+ }
+ // save the line numbers of the selected lines so they can be used for
+ // printing and print preview
+ temp.setProperty("printingLineNumbers", selectedLines);
+ return temp;
+ }
+
/**
* This is intended for use by the PrintPreview dialog.
*/
protected static void printPage( PrintPreviewModel model )
{
String jobName = MiscUtilities.abbreviateView( model.getBuffer().getPath() );
- model.getAttributes().add( new JobName( jobName, null ) );
+ PrintRequestAttributeSet attrs = model.getAttributes();
+ attrs.add( new JobName( jobName, null ) );
+ Reverse reverse = (Reverse)attrs.get(Reverse.class);
+ if (reverse != null)
+ {
+ attrs.remove(Reverse.class);
+ }
// set up the print job
PrintService printService = model.getPrintService();
@@ -234,8 +221,14 @@
}
- // set up the printable to print just the requested page
- BufferPrintable1_7 printable = new BufferPrintable1_7( model.getAttributes(), model.getView(), model.getBuffer() );
+ // set up the printable to print just the requested pages
+ Buffer buffer = model.getBuffer();
+ PrintRangeType printRangeType = (PrintRangeType)attrs.get(PrintRangeType.class);
+ if ( PrintRangeType.SELECTION.equals(printRangeType) )
+ {
+ buffer = getSelectionBuffer(model.getView(), buffer);
+ }
+ BufferPrintable1_7 printable = new BufferPrintable1_7( attrs, model.getView(), buffer );
printable.setPages(model.getPageRanges());
int pageNumber = model.getPageNumber();
try
@@ -246,6 +239,10 @@
{
e.printStackTrace();
}
+ if (reverse != null)
+ {
+ attrs.add(reverse);
+ }
}
@@ -255,14 +252,10 @@
*/
public static HashMap getPageRanges( View view, Buffer buffer, PrintRequestAttributeSet attributes )
{
- if (attributes == null)
- {
- loadPrintSpec();
- attributes = format;
- }
-
- BufferPrintable1_7 printable = new BufferPrintable1_7( attributes, view, buffer );
- return BufferPrinter1_7.getPageRanges( printable, attributes );
+ loadPrintSpec();
+ format.addAll(attributes);
+ BufferPrintable1_7 printable = new BufferPrintable1_7( format, view, buffer );
+ return BufferPrinter1_7.getPageRanges( printable, format );
}
@@ -280,11 +273,13 @@
graphics.setClip(clipRegion);
try
{
+ // calculate which lines belong to each page
HashMap pageLineRanges = printable.calculatePages( graphics, pageFormat );
PageRanges pr = (PageRanges)attributes.get(PageRanges.class);
if (pr == null) {
pr = new PageRanges( 1, 1000 );
}
+ // then keep only the pages the user has selected
HashMap newLineRanges = new HashMap();
for (Integer i : pageLineRanges.keySet())
{
@@ -293,15 +288,39 @@
newLineRanges.put(i, pageLineRanges.get(i));
}
}
- //return newLineRanges;
- return pageLineRanges;
+ return newLineRanges;
}
catch(Exception e)
{
+ e.printStackTrace();
return null;
}
}
+ public static HashMap getCurrentPageRange( View view, Buffer buffer, PrintRequestAttributeSet attributes )
+ {
+ if (attributes == null)
+ {
+ loadPrintSpec();
+ attributes = format;
+ }
+
+ BufferPrintable1_7 printable = new BufferPrintable1_7( attributes, view, buffer );
+ HashMap pages = BufferPrinter1_7.getPageRanges( printable, attributes );
+ HashMap answer = new HashMap();
+ int caretLine = view.getTextArea().getCaretLine();
+ for (Integer i : pages.keySet())
+ {
+ Range range = pages.get(i);
+ if (range.contains(caretLine))
+ {
+ answer.put(i, range);
+ break;
+ }
+ }
+ return answer;
+ }
+
public static PageFormat getDefaultPageFormat(PrintRequestAttributeSet attributes)
{
return BufferPrinter1_7.createPageFormat(attributes);
@@ -387,6 +406,7 @@
mpa = new MediaPrintableArea(0.5f, 0.5f, 10.0f, 7.5f, MediaPrintableArea.INCH);
format.add(mpa);
}
+ format.remove(Reverse.class);
}
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/print/Margins.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/print/Margins.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/print/Margins.java 2017-03-18 13:30:24.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/print/Margins.java 2018-04-08 23:57:33.000000000 +0000
@@ -1,3 +1,24 @@
+/*
+ * Margins.java
+ * :tabSize=4:indentSize=4:noTabs=false:
+ * :folding=explicit:collapseFolds=1:
+ *
+ * Copyright (C) 2016 Dale Anson
+ *
+ * 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.
+ */
package org.gjt.sp.jedit.print;
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/print/PageBreakExtension.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/print/PageBreakExtension.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/print/PageBreakExtension.java 2017-03-18 13:30:24.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/print/PageBreakExtension.java 2018-04-08 23:57:33.000000000 +0000
@@ -26,6 +26,10 @@
import java.awt.Graphics2D;
import java.util.HashMap;
+import javax.print.attribute.PrintRequestAttributeSet;
+import javax.print.attribute.HashPrintRequestAttributeSet;
+import javax.print.attribute.standard.PageRanges;
+
import org.gjt.sp.jedit.Buffer;
import org.gjt.sp.jedit.EBComponent;
import org.gjt.sp.jedit.EBMessage;
@@ -69,7 +73,9 @@
{
View view = textArea.getView();
Buffer buffer = ( Buffer )textArea.getBuffer();
- pages = BufferPrinter1_7.getPageRanges( view, buffer, null );
+ PrintRequestAttributeSet attributes = new HashPrintRequestAttributeSet();
+ attributes.add(new PageRanges("1-1000"));
+ pages = BufferPrinter1_7.getPageRanges( view, buffer, attributes );
}
else
{
@@ -162,7 +168,7 @@
// 2nd part of 'if' handles soft wrap so if the last line of the page
// is wrapped, only the last screen line of the wrapped line will get
// the page break line drawn on it.
- if ( range.getEnd() == physicalLine && textArea.getLineEndOffset( physicalLine ) == end )
+ if ( range != null && range.getEnd() == physicalLine && textArea.getLineEndOffset( physicalLine ) == end )
{
y += gfx.getFontMetrics().getHeight();
gfx.drawLine( 0, y, textArea.getPainter().getWidth(), y );
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/print/PrinterDialog.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/print/PrinterDialog.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/print/PrinterDialog.java 2017-03-18 13:30:24.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/print/PrinterDialog.java 2018-04-08 23:57:33.000000000 +0000
@@ -47,9 +47,8 @@
import org.gjt.sp.jedit.gui.VariableGridLayout;
import org.gjt.sp.jedit.jEdit;
import org.gjt.sp.util.GenericGUIUtilities;
+import org.gjt.sp.util.Log;
-
-// import org.gjt.sp.util.Log;
// Technical guide on the Java printing system:
// https://docs.oracle.com/javase/7/docs/technotes/guides/jps/spec/JPSTOC.fm.html
public class PrinterDialog extends JDialog implements ListSelectionListener
@@ -75,24 +74,14 @@
private boolean canceled = false;
private Map messageMap;
private PageSetupPanel pageSetupPanel;
- public static int ALL = 0;
- public static int ODD = 1;
- public static int EVEN = 2;
- public static int RANGE = 3;
- public static int CURRENT_PAGE = 4;
- public static int SELECTION = 5;
- public static int onlyPrintPages = ALL;
- private int printRangeType = ALL;
+ public static int onlyPrintPages = PrintRangeType.ALL.getValue();
private DocFlavor DOC_FLAVOR = DocFlavor.SERVICE_FORMATTED.PRINTABLE;
- private boolean reversePrinting = false;
public PrinterDialog( View owner, PrintRequestAttributeSet attributes, boolean pageSetupOnly )
{
super( owner, Dialog.ModalityType.APPLICATION_MODAL );
try
-
-
{
view = owner;
this.pageSetupOnly = pageSetupOnly;
@@ -116,10 +105,10 @@
this.attributes.remove( Destination.class );
- Attribute[] attrs = attributes.toArray();
+
// for debugging
- /*
+ /* Attribute[] attrs = attributes.toArray();
* for ( Attribute a : attrs )
* {
* Log.log( Log.DEBUG, this, "+++++ before: " + a.getName() + " = " + a );
@@ -165,10 +154,11 @@
buttonPanel.add( okButton );
buttonPanel.add( cancelButton );
contents.add( buttonPanel, BorderLayout.SOUTH );
-
+
setContentPane( contents );
// auto-select the default printer
+ /*
PrintService defaultPrintService = PrintServiceLookup.lookupDefaultPrintService();
if ( defaultPrintService != null )
{
@@ -178,6 +168,7 @@
{
printers.setSelectedIndex( 0 );
}
+ */
// loads some default values if needed
@@ -188,6 +179,13 @@
pack();
+ // ESC key closes dialog
+ getRootPane().registerKeyboardAction(e -> {
+ PrinterDialog.this.setVisible(false);
+ PrinterDialog.this.dispose();
+ canceled = true;
+ }, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_IN_FOCUSED_WINDOW);
+
setLocationRelativeTo( jEdit.getActiveView().getTextArea() );
setVisible( true );
}
@@ -222,7 +220,7 @@
AttributeSet panelAttributes = panel.getAttributes();
if (panelAttributes != null)
{
- PrinterDialog.this.attributes.addAll( attributes );
+ PrinterDialog.this.attributes.addAll( panelAttributes );
}
}
@@ -273,7 +271,7 @@
AttributeSet panelAttributes = panel.getAttributes();
if (panelAttributes != null)
{
- PrinterDialog.this.attributes.addAll( attributes );
+ PrinterDialog.this.attributes.addAll( panelAttributes );
}
}
@@ -382,27 +380,6 @@
}
- /**
- * @return true
if the pages should be printed in reverse order,
- * that is, the last page is printed first and the first page is printed last.
- */
- public boolean getReverse()
- {
- return reversePrinting;
- }
-
-
- /**
- * @return one of ALL, RANGE, CURRENT, or SELECTION, depending on whether the
- * user has elected to print all pages, a range of pages, just the current page
- * or just the selected text.
- */
- public int getPrintRangeType()
- {
- return printRangeType;
- }
-
-
private PrintService[] getPrintServices()
{
PrintService[] printServices = PrintServiceLookup.lookupPrintServices( DOC_FLAVOR, null );
@@ -457,7 +434,7 @@
// setting in the Page Setup tab.
private PageRanges mergeRanges( PageRanges pr ) throws PrintException
{
- if ( pr == null || onlyPrintPages == ALL )
+ if ( pr == null || onlyPrintPages == PrintRangeType.ALL.getValue() )
{
return pr;
}
@@ -477,12 +454,12 @@
int end = range.length == 1 ? range[0] : Math.min( range[0] + 500, range[1] );
for ( int pageIndex = start; pageIndex <= end; pageIndex++ )
{
- if ( pageIndex % 2 == 0 && onlyPrintPages == EVEN )
+ if ( pageIndex % 2 == 0 && onlyPrintPages == PrintRangeType.EVEN.getValue() )
{
pages.add( pageIndex );
}
else
- if ( pageIndex % 2 == 1 && onlyPrintPages == ODD )
+ if ( pageIndex % 2 == 1 && onlyPrintPages == PrintRangeType.ODD.getValue() )
{
pages.add( pageIndex );
}
@@ -562,163 +539,185 @@
previousSize = ( MediaSizeName )previousPaper;
}
-
- String[] paperNames = new String [sizes.length];
- paperSizes = new ArrayList();
- int index = -1;
- int letterSizeIndex = 0;
- for ( int i = 0; i < sizes.length; i++ )
+ if (paperSize != null)
{
- MediaSizeName m = sizes[i];
- if ( MediaSizeName.NA_LETTER.equals( m ) )
+ String[] paperNames = new String [sizes.length];
+ paperSizes = new ArrayList();
+ int index = -1;
+ int letterSizeIndex = 0;
+ for ( int i = 0; i < sizes.length; i++ )
{
- letterSizeIndex = i;
- }
- else
- if ( m.equals( previousSize ) )
- {
- index = i;
- }
-
-
- paperSizes.add( m );
- paperNames[i] = getMessage( m.toString() );
+ MediaSizeName m = sizes[i];
+ if ( MediaSizeName.NA_LETTER.equals( m ) )
+ {
+ letterSizeIndex = i;
+ }
+ else
+ if ( m.equals( previousSize ) )
+ {
+ index = i;
+ }
+
+
+ paperSizes.add( m );
+ paperNames[i] = getMessage( m.toString() );
+ }
+ index = index == -1 ? letterSizeIndex : index;
+ paperSize.setModel( new DefaultComboBoxModel( paperNames ) );
+ paperSize.setEnabled( true );
+ paperSize.setSelectedIndex( index );
}
- index = index == -1 ? letterSizeIndex : index;
- paperSize.setModel( new DefaultComboBoxModel( paperNames ) );
- paperSize.setEnabled( true );
- paperSize.setSelectedIndex( index );
-
+
// finishing
- value = categoryValueMap.get( Finishings.class );
- if ( value == null )
- {
- finishing.setModel( new DefaultComboBoxModel() );
- finishing.setEnabled( false );
- }
- else
+ if (finishing != null)
{
- Finishings[] finishings = ( Finishings[] )value;
- if ( finishings.length == 0 || ( finishings.length == 1 && Finishings.NONE.equals( finishings[0] ) ) )
+ value = categoryValueMap.get( Finishings.class );
+ if ( value == null )
{
finishing.setModel( new DefaultComboBoxModel() );
finishing.setEnabled( false );
}
else
{
- finishing.setModel( new DefaultComboBoxModel( finishings ) );
- finishing.setEnabled( true );
+ Finishings[] finishings = ( Finishings[] )value;
+ if ( finishings.length == 0 || ( finishings.length == 1 && Finishings.NONE.equals( finishings[0] ) ) )
+ {
+ finishing.setModel( new DefaultComboBoxModel() );
+ finishing.setEnabled( false );
+ }
+ else
+ {
+ finishing.setModel( new DefaultComboBoxModel( finishings ) );
+ finishing.setEnabled( true );
+ }
}
}
// sides
- value = categoryValueMap.get( Sides.class );
- if ( value == null )
- {
- sides.setEnabled( false );
- }
- else
+ if (sides != null)
{
- sides.setModel( new DefaultComboBoxModel( ( Sides[] )value ) );
- Sides previousSides = ( Sides )attributes.get( Sides.class );
- sides.setSelectedItem( previousSides == null ? Sides.ONE_SIDED : previousSides );
- sides.setEnabled( true );
+ value = categoryValueMap.get( Sides.class );
+ if ( value == null )
+ {
+ sides.setEnabled( false );
+ }
+ else
+ {
+ sides.setModel( new DefaultComboBoxModel( ( Sides[] )value ) );
+ Sides previousSides = ( Sides )attributes.get( Sides.class );
+ sides.setSelectedItem( previousSides == null ? Sides.ONE_SIDED : previousSides );
+ sides.setEnabled( true );
+ }
}
// pages per side
- value = categoryValueMap.get( NumberUp.class );
- if ( value == null )
+ if (pagesPerSide != null)
{
- pagesPerSide.setEnabled( false );
- }
- else
- {
- NumberUp[] numberUp = ( NumberUp[] )value;
- Arrays.sort( numberUp, new Comparator()
+ value = categoryValueMap.get( NumberUp.class );
+ if ( value == null )
{
-
- public int compare( NumberUp a, NumberUp b )
+ pagesPerSide.setEnabled( false );
+ }
+ else
+ {
+ NumberUp[] numberUp = ( NumberUp[] )value;
+ Arrays.sort( numberUp, new Comparator()
{
- int m = a.getValue();
- int n = b.getValue();
- if ( m < n )
- {
- return -1;
- }
- else
- if ( m == n )
- {
- return 0;
- }
- else
+
+ public int compare( NumberUp a, NumberUp b )
{
- return 1;
+ int m = a.getValue();
+ int n = b.getValue();
+ if ( m < n )
+ {
+ return -1;
+ }
+ else
+ if ( m == n )
+ {
+ return 0;
+ }
+ else
+ {
+ return 1;
+ }
}
- }
- } );
- pagesPerSide.setModel( new DefaultComboBoxModel( numberUp ) );
- pagesPerSide.setEnabled( true );
+ } );
+ pagesPerSide.setModel( new DefaultComboBoxModel( numberUp ) );
+ pagesPerSide.setEnabled( true );
+ }
}
// ordering of pages per side
- value = categoryValueMap.get( PresentationDirection.class );
- if ( value == null )
+ if (pageOrdering != null)
{
- pageOrdering.setEnabled( false );
- }
- else
- {
- PresentationDirection[] po = ( PresentationDirection[] )value;
- pageOrdering.setModel( new DefaultComboBoxModel( po ) );
- pageOrdering.setEnabled( true );
+ value = categoryValueMap.get( PresentationDirection.class );
+ if ( value == null )
+ {
+ pageOrdering.setEnabled( false );
+ }
+ else
+ {
+ PresentationDirection[] po = ( PresentationDirection[] )value;
+ pageOrdering.setModel( new DefaultComboBoxModel( po ) );
+ pageOrdering.setEnabled( true );
+ }
}
// paper source tray
- value = categoryValueMap.get( Media.class );
- if ( value == null )
+ if (paperSource != null)
{
- paperSource.setEnabled( false );
- }
- else
- {
- Set trayNames = new HashSet();
- for ( Media m : ( Media[] )value )
+ value = categoryValueMap.get( Media.class );
+ if ( value == null )
{
- if ( m instanceof MediaTray )
- {
- trayNames.add( ( MediaTray )m );
- }
- }
- if ( trayNames.size() > 0 )
- {
- MediaTray[] trays = trayNames.toArray( new MediaTray [trayNames.size()] );
- paperSource.setModel( new DefaultComboBoxModel( trays ) );
- paperSource.setEnabled( true );
+ paperSource.setEnabled( false );
}
else
{
- paperSource.setEnabled( false );
+ Set trayNames = new HashSet();
+ for ( Media m : ( Media[] )value )
+ {
+ if ( m instanceof MediaTray )
+ {
+ trayNames.add( ( MediaTray )m );
+ }
+ }
+ if ( trayNames.size() > 0 )
+ {
+ MediaTray[] trays = trayNames.toArray( new MediaTray [trayNames.size()] );
+ paperSource.setModel( new DefaultComboBoxModel( trays ) );
+ paperSource.setEnabled( true );
+ MediaTray lastUsedTray = (MediaTray)attributes.get(MediaTray.class);
+ paperSource.setSelectedItem(lastUsedTray == null ? trays[0] : lastUsedTray);
+ }
+ else
+ {
+ paperSource.setEnabled( false );
+ }
}
}
// orientation, eg. portrait or landscape
- value = categoryValueMap.get( OrientationRequested.class );
- if ( value == null )
+ if (orientation != null)
{
- orientation.setEnabled( false );
- }
- else
- {
- OrientationRequested[] or = ( OrientationRequested[] )value;
- orientation.setModel( new DefaultComboBoxModel( or ) );
- orientation.setEnabled( true );
- OrientationRequested previousOrientation = ( OrientationRequested )attributes.get( OrientationRequested.class );
- orientation.setSelectedItem( previousOrientation == null ? OrientationRequested.PORTRAIT : previousOrientation );
+ value = categoryValueMap.get( OrientationRequested.class );
+ if ( value == null )
+ {
+ orientation.setEnabled( false );
+ }
+ else
+ {
+ OrientationRequested[] or = ( OrientationRequested[] )value;
+ orientation.setModel( new DefaultComboBoxModel( or ) );
+ orientation.setEnabled( true );
+ OrientationRequested previousOrientation = ( OrientationRequested )attributes.get( OrientationRequested.class );
+ orientation.setSelectedItem( previousOrientation == null ? OrientationRequested.PORTRAIT : previousOrientation );
+ }
}
}
@@ -752,16 +751,15 @@
JTextField pagesField;
- // TODO: current page and selection are not implemented yet. Note there
- // are no standard printer attributes to specify either of these.
+ // DONE: current page and selection are not implemented yet. Note there
+ // are no standard printer attributes to specify either of these, so I
+ // added the PrintRangeType attribute to handle these.
public GeneralPanel()
{
super();
printers = new JList( getPrintServices() );
printers.setCellRenderer( new PrintServiceCellRenderer() );
printers.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
- printers.addListSelectionListener( PrinterDialog.this );
- selectedPrintService = printers.getModel().getElementAt( 0 );
JPanel rangePanel = new JPanel( new GridLayout( 4, 2, 6, 6 ) );
rangePanel.setBorder( BorderFactory.createCompoundBorder(
@@ -769,28 +767,10 @@
BorderFactory.createEmptyBorder( 11, 11, 11, 11 ) ) );
allPages = new JRadioButton( jEdit.getProperty( "print.dialog.All_pages", "All pages" ) );
allPages.setSelected( true );
- allPages.addActionListener( new ActionListener()
- {
-
- public void actionPerformed( ActionEvent ae )
- {
- pagesField.setEnabled( pages.isSelected() );
- }
- }
- );
pages = new JRadioButton( jEdit.getProperty( "print.dialog.Pages", "Pages" ) + ':' );
pagesField = new JTextField();
pagesField.setEnabled( false );
- pages.addActionListener( new ActionListener()
- {
-
- public void actionPerformed( ActionEvent ae )
- {
- pagesField.setEnabled( pages.isSelected() );
- }
- }
- );
currentPage = new JRadioButton( jEdit.getProperty( "print.dialog.Current_page", "Current page" ) );
selection = new JRadioButton( jEdit.getProperty( "print.dialog.Selection", "Selection" ) );
@@ -814,17 +794,6 @@
BorderFactory.createEmptyBorder( 11, 11, 11, 11 ) ) );
JLabel copiesLabel = new JLabel( jEdit.getProperty( "print.dialog.Copies", "Copies" + ':' ) );
copies = new JSpinner( new SpinnerNumberModel( 1, 1, 999, 1 ) );
- copies.addChangeListener( new ChangeListener()
- {
-
- public void stateChanged( ChangeEvent e )
- {
- JSpinner spinner = ( JSpinner )e.getSource();
- int value = ( int )spinner.getValue();
- collate.setEnabled( value > 1 );
- collate.setSelected( value > 1 );
- }
- } );
collate = new JCheckBox( jEdit.getProperty( "print.dialog.Collate", "Collate" ) );
collate.setSelected( false );
collate.setEnabled( false );
@@ -849,17 +818,78 @@
content.add( top, BorderLayout.CENTER );
content.add( bottom, BorderLayout.SOUTH );
add( content );
+
+ // install listeners
+ printers.addListSelectionListener( PrinterDialog.this );
+ allPages.addActionListener( new ActionListener()
+ {
+
+ public void actionPerformed( ActionEvent ae )
+ {
+ pagesField.setEnabled( pages.isSelected() );
+ }
+ }
+ );
+ pages.addActionListener( new ActionListener()
+ {
+
+ public void actionPerformed( ActionEvent ae )
+ {
+ pagesField.setEnabled( pages.isSelected() );
+ }
+ }
+ );
+ copies.addChangeListener( new ChangeListener()
+ {
+
+ public void stateChanged( ChangeEvent e )
+ {
+ JSpinner spinner = ( JSpinner )e.getSource();
+ int value = ( int )spinner.getValue();
+ collate.setEnabled( value > 1 );
+ collate.setSelected( value > 1 );
+ }
+ } );
+ PrintService defaultPrintService = PrintServiceLookup.lookupDefaultPrintService();
+ // choose last used printer first, default printer if no last used, or first
+ // item in print service list otherwise
+ String lastUsedPrinterName = jEdit.getProperty("print.lastUsedPrinter");
+ if (lastUsedPrinterName != null)
+ {
+ ListModel lm = printers.getModel();
+ for (int i = 0; i < lm.getSize(); i++)
+ {
+ PrintService ps = lm.getElementAt(i);
+ if (lastUsedPrinterName.equals(ps.getName()))
+ {
+ printers.setSelectedValue(ps, true);
+ selectedPrintService = ps;
+ break;
+ }
+ }
+ }
+ else if (defaultPrintService != null)
+ {
+ printers.setSelectedValue(defaultPrintService, true);
+ selectedPrintService = defaultPrintService;
+ }
+ else
+ {
+ selectedPrintService = printers.getModel().getElementAt( 0 );
+ }
}
public AttributeSet getAttributes()
{
+ jEdit.setProperty("print.lastUsedPrinter", printers.getSelectedValue().getName());
+
AttributeSet as = new HashAttributeSet();
if ( allPages.isSelected() )
{
as.add( new PageRanges( 1, 1000 ) );
- printRangeType = ALL;
+ as.add( PrintRangeType.ALL );
}
else
if ( pages.isSelected() )
@@ -868,8 +898,6 @@
if ( pageRange != null )
{
try
-
-
{
as.add( new PageRanges( pageRange ) );
}
@@ -878,21 +906,27 @@
e.printStackTrace();
}
}
-
-
- printRangeType = RANGE;
+ as.add( PrintRangeType.RANGE );
}
else
if ( currentPage.isSelected() )
{
- as.add( new PageRanges( 1 ) );
- printRangeType = CURRENT_PAGE;
+ PrinterDialog.this.attributes.add(new PageRanges( 1, 1000 ) );
+ HashMap currentPageRange = BufferPrinter1_7.getCurrentPageRange(view, view.getBuffer(), PrinterDialog.this.attributes);
+ int page = 1;
+ if (currentPageRange != null && !currentPageRange.isEmpty())
+ {
+ page = currentPageRange.keySet().iterator().next();
+ }
+
+ as.add( new PageRanges( page ) );
+ as.add( PrintRangeType.CURRENT_PAGE );
}
else
if ( selection.isSelected() )
{
- as.add( new PageRanges( 1, 1000 ) );
- printRangeType = SELECTION;
+ PrinterDialog.this.attributes.add(new PageRanges( 1, 1000 ) );
+ as.add( PrintRangeType.SELECTION );
}
@@ -903,8 +937,15 @@
as.add( new Copies( ( Integer )copies.getValue() ) );
-
- reversePrinting = reverse.isSelected();
+
+ if (reverse.isSelected())
+ {
+ as.add(new Reverse());
+ }
+ else
+ {
+ attributes.remove(Reverse.class);
+ }
return as;
}
@@ -983,19 +1024,6 @@
pagesPerSide = new JComboBox();
pagesPerSide.setEnabled( false );
- pagesPerSide.addActionListener( new ActionListener()
- {
-
- public void actionPerformed( ActionEvent ae )
- {
- NumberUp nu = ( NumberUp )pagesPerSide.getSelectedItem();
- if ( nu != null && nu.getValue() == 1 )
- {
- pageOrdering.setEnabled( false );
- }
- }
- }
- );
// disable this when pagesPerSide is 1
pageOrdering = new JComboBox();
@@ -1029,28 +1057,10 @@
paperSize = new JComboBox();
paperSize.setEnabled( false );
- paperSize.addActionListener( new ActionListener()
- {
-
- public void actionPerformed( ActionEvent ae )
- {
- PageSetupPanel.this.setDefaultMargins();
- }
- }
- );
orientation = new JComboBox();
orientation.setEnabled( false );
orientation.setRenderer( new OrientationCellRenderer() );
- orientation.addActionListener( new ActionListener()
- {
-
- public void actionPerformed( ActionEvent ae )
- {
- PageSetupPanel.this.setDefaultMargins();
- }
- }
- );
paperPanel.add( new JLabel( jEdit.getProperty( "print.dialog.Paper_source", "Paper source" ) + ':' ) );
paperPanel.add( paperSource );
@@ -1064,10 +1074,14 @@
JPanel marginPanel = new JPanel( new VariableGridLayout( VariableGridLayout.FIXED_NUM_COLUMNS, 2, 6, 6 ) );
marginPanel.setBorder( BorderFactory.createCompoundBorder( BorderFactory.createTitledBorder( BorderFactory.createEtchedBorder(), jEdit.getProperty( "print.dialog.Margins", "Margins" ) ), BorderFactory.createEmptyBorder( 11, 11, 11, 11 ) ) );
boolean unitIsMM = getUnits() == MediaPrintableArea.MM;
- topMarginField = new NumericTextField( "", true, unitIsMM );
- leftMarginField = new NumericTextField( "", true, unitIsMM );
- rightMarginField = new NumericTextField( "", true, unitIsMM );
- bottomMarginField = new NumericTextField( "", true, unitIsMM );
+ String topMargin = jEdit.getProperty("print.topMargin", unitIsMM ? "25" : "1.0");
+ String leftMargin = jEdit.getProperty("print.leftMargin", unitIsMM ? "25" : "1.0");
+ String rightMargin = jEdit.getProperty("print.rightMargin", unitIsMM ? "25" : "1.0");
+ String bottomMargin = jEdit.getProperty("print.bottomMargin", unitIsMM ? "25" : "1.0");
+ topMarginField = new NumericTextField( topMargin, true, unitIsMM );
+ leftMarginField = new NumericTextField( leftMargin, true, unitIsMM );
+ rightMarginField = new NumericTextField( rightMargin, true, unitIsMM );
+ bottomMarginField = new NumericTextField( bottomMargin, true, unitIsMM );
String unitsLabel = unitIsMM ? " (mm)" : " (in)";
marginPanel.add( new JLabel( jEdit.getProperty( "print.dialog.Top", "Top" ) + unitsLabel ) );
@@ -1096,6 +1110,41 @@
content.add( marginPanel );
content.add( finishingPanel );
add( content );
+
+ // add listeners
+ pagesPerSide.addActionListener( new ActionListener()
+ {
+
+ public void actionPerformed( ActionEvent ae )
+ {
+ NumberUp nu = ( NumberUp )pagesPerSide.getSelectedItem();
+ if ( nu != null && nu.getValue() == 1 )
+ {
+ pageOrdering.setEnabled( false );
+ }
+ }
+ }
+ );
+ paperSize.addActionListener( new ActionListener()
+ {
+
+ public void actionPerformed( ActionEvent ae )
+ {
+ PageSetupPanel.this.setDefaultMargins();
+ }
+ }
+ );
+ orientation.addActionListener( new ActionListener()
+ {
+
+ public void actionPerformed( ActionEvent ae )
+ {
+ PageSetupPanel.this.setDefaultMargins();
+ }
+ }
+ );
+
+
}
@@ -1213,12 +1262,18 @@
}
- float topMargin = topMarginField.getValue().floatValue();
- float leftMargin = leftMarginField.getValue().floatValue();
- float rightMargin = rightMarginField.getValue().floatValue();
- float bottomMargin = bottomMarginField.getValue().floatValue();
- Margins margins = new Margins( topMargin, leftMargin, rightMargin, bottomMargin );
+ Number topMargin = topMarginField.getValue();
+ Number leftMargin = leftMarginField.getValue();
+ Number rightMargin = rightMarginField.getValue();
+ Number bottomMargin = bottomMarginField.getValue();
+
+ Margins margins = new Margins( topMargin.floatValue(), leftMargin.floatValue(), rightMargin.floatValue(), bottomMargin.floatValue() );
as.add( margins );
+
+ jEdit.setProperty("print.topMargin", topMargin.toString());
+ jEdit.setProperty("print.leftMargin", leftMargin.toString());
+ jEdit.setProperty("print.rightMargin", rightMargin.toString());
+ jEdit.setProperty("print.bottomMargin", bottomMargin.toString());
return as;
}
@@ -1457,7 +1512,7 @@
OrientationRequested orientationRequested = ( OrientationRequested )orientation.getSelectedItem();
rotateMargins( topMargin, leftMargin, rightMargin, bottomMargin, orientationRequested );
- // Log.log( Log.DEBUG, this, "getMinimumMargins returning " + topMargin + ", " + leftMargin + ", " + rightMargin + ", " + bottomMargin);
+ //Log.log( Log.DEBUG, this, "getMinimumMargins returning " + topMargin + ", " + leftMargin + ", " + rightMargin + ", " + bottomMargin);
return new float[] {topMargin, leftMargin, rightMargin, bottomMargin};
}
@@ -1500,7 +1555,7 @@
OrientationRequested orientationRequested = ( OrientationRequested )orientation.getSelectedItem();
rotateMargins( topMargin, leftMargin, rightMargin, bottomMargin, orientationRequested );
- // Log.log( Log.DEBUG, this, "getMinimumMargins returning " + topMargin + ", " + leftMargin + ", " + rightMargin + ", " + bottomMargin);
+ //Log.log( Log.DEBUG, this, "getMaximumMargins returning " + topMargin + ", " + leftMargin + ", " + rightMargin + ", " + bottomMargin);
return new float[] {topMargin, leftMargin, rightMargin, bottomMargin};
}
@@ -1511,6 +1566,7 @@
private int getUnits()
{
String country = Locale.getDefault().getCountry();
+ //String country = "Latvia"; // for testing metric
if ( "".equals( country ) || Locale.US.getCountry().equals( country ) || Locale.CANADA.getCountry().equals( country ) )
{
return MediaPrintableArea.INCH;
@@ -1564,15 +1620,6 @@
// print later
atButton = new JRadioButton( jEdit.getProperty( "print.dialog.At", "At" ) );
atButton.setEnabled( true );
- atButton.addActionListener( new ActionListener()
- {
-
- public void actionPerformed( ActionEvent ae )
- {
- when.setEnabled( atButton.isSelected() );
- }
- }
- );
Calendar calendar = Calendar.getInstance( Locale.getDefault() );
Date initialDate = calendar.getTime();
calendar.add( Calendar.YEAR, 1 );
@@ -1596,6 +1643,18 @@
content.add( jobPanel );
content.add( printPanel );
add( content, BorderLayout.NORTH );
+
+ // add listeners
+ atButton.addActionListener( new ActionListener()
+ {
+
+ public void actionPerformed( ActionEvent ae )
+ {
+ when.setEnabled( atButton.isSelected() );
+ }
+ }
+ );
+
}
@@ -1681,30 +1740,15 @@
quality.addItem( PrintQuality.DRAFT );
quality.addItem( PrintQuality.NORMAL );
quality.addItem( PrintQuality.HIGH );
- quality.setSelectedItem( PrintQuality.NORMAL );
+ PrintQuality pq = (PrintQuality)attributes.get(PrintQuality.class);
+ quality.setSelectedItem( pq == null ? PrintQuality.NORMAL : pq );
quality.setRenderer( new QualityCellRenderer() );
chromaticity = new JComboBox();
chromaticity.addItem( Chromaticity.MONOCHROME );
chromaticity.addItem( Chromaticity.COLOR );
Chromaticity value = ( Chromaticity )attributes.get( Chromaticity.class );
- if ( value != null )
- {
- if ( "color".equalsIgnoreCase( value.toString() ) )
- {
- chromaticity.setSelectedItem( Chromaticity.COLOR );
- }
- else
- {
- chromaticity.setSelectedItem( Chromaticity.MONOCHROME );
- }
- }
- else
- {
- chromaticity.setSelectedItem( Chromaticity.MONOCHROME );
- }
-
-
+ chromaticity.setSelectedItem(value == null ? Chromaticity.MONOCHROME : value);
chromaticity.setRenderer( new ChromaticityCellRenderer() );
JPanel content = new JPanel( new VariableGridLayout( VariableGridLayout.FIXED_NUM_COLUMNS, 2, 6, 6 ) );
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/print/PrintPreview.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/print/PrintPreview.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/print/PrintPreview.java 2017-03-18 13:30:24.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/print/PrintPreview.java 2018-04-08 23:57:33.000000000 +0000
@@ -240,6 +240,22 @@
}
}
);
+
+ pages.addActionListener(new ActionListener()
+ {
+ public void actionPerformed(ActionEvent me)
+ {
+ if (model != null)
+ {
+ int selectedPage = ( Integer )pages.getSelectedItem();
+ model.setPageNumber( selectedPage - 1 );
+ model.setPageRanges( pageRanges );
+ model.setZoomLevel( zoomLevel );
+ attributes.add( new PageRanges( selectedPage ) );
+ printPreviewPane.setModel( model );
+ }
+ }
+ });
prevPage.addActionListener( new ActionListener()
{
@@ -258,6 +274,12 @@
pages.setSelectedIndex( selectedIndex );
+ int selectedPage = ( Integer )pages.getSelectedItem();
+ model.setPageNumber( selectedPage - 1 );
+ model.setPageRanges( pageRanges );
+ model.setZoomLevel( zoomLevel );
+ attributes.add( new PageRanges( selectedPage ) );
+ printPreviewPane.setModel( model );
}
}
);
@@ -278,6 +300,12 @@
pages.setSelectedIndex( selectedIndex );
+ int selectedPage = ( Integer )pages.getSelectedItem();
+ model.setPageNumber( selectedPage - 1 );
+ model.setPageRanges( pageRanges );
+ model.setZoomLevel( zoomLevel );
+ attributes.add( new PageRanges( selectedPage ) );
+ printPreviewPane.setModel( model );
}
}
);
@@ -348,24 +376,34 @@
}
);
}
-
+
private void init()
{
pageRanges = BufferPrinter1_7.getPageRanges( view, buffer, attributes );
DefaultComboBoxModel pagesModel = new DefaultComboBoxModel();
+ boolean reverse = attributes.containsKey(Reverse.class);
+ StringBuilder pr = new StringBuilder();
for ( Integer i : pageRanges.keySet() )
{
- pagesModel.addElement( i );
- // Log.log(Log.DEBUG, this, "init, i = " + i + ", range = " + pageRanges.get(i));
+ Integer pageNo = reverse ? pageRanges.size() - i + 1: i;
+ pagesModel.addElement( pageNo );
+ //Log.log(Log.DEBUG, this, "init, i = " + i + ", range = " + pageRanges.get(i));
+ pr.append(i).append(',');
}
+ pr.deleteCharAt(pr.length() - 1);
pages.setModel( pagesModel );
+ pages.setSelectedIndex( 0 );
nextPage.setEnabled( pagesModel.getSize() > 1 );
prevPage.setEnabled( pagesModel.getSize() > 1 );
model = new PrintPreviewModel( view, buffer, printService, attributes, pageRanges );
- model.setPageNumber( 0 );
+ int firstPage = ( Integer )pages.getSelectedItem();
+ model.setPageNumber( firstPage - 1 );
+ model.setPageRanges( pageRanges );
+ model.setZoomLevel( zoomLevel );
+ attributes.add( new PageRanges( firstPage ) );
printPreviewPane.setModel( model );
}
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/print/PrintPreviewModel.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/print/PrintPreviewModel.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/print/PrintPreviewModel.java 2017-03-18 13:30:24.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/print/PrintPreviewModel.java 2018-04-08 23:57:33.000000000 +0000
@@ -47,7 +47,7 @@
private PrintRequestAttributeSet attributes;
private HashMap pageRanges;
private int pageNumber = 1;
- private int printRangeType = PrinterDialog.ALL;
+ private PrintRangeType printRangeType = PrintRangeType.ALL;
private Graphics gfx;
public static enum Zoom { NONE, IN, OUT, WIDTH, PAGE };
private Zoom zoom = Zoom.NONE;
@@ -110,12 +110,12 @@
this.pageRanges = pageRanges;
}
- public void setPrintRangeType(int type)
+ public void setPrintRangeType(PrintRangeType type)
{
printRangeType = type;
}
- public int getPrintRangeType()
+ public PrintRangeType getPrintRangeType()
{
return printRangeType;
}
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/print/PrintRangeType.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/print/PrintRangeType.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/print/PrintRangeType.java 1970-01-01 00:00:00.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/print/PrintRangeType.java 2018-04-08 23:57:33.000000000 +0000
@@ -0,0 +1,94 @@
+/*
+ * PrintRangeType.java
+ * :tabSize=4:indentSize=4:noTabs=false:
+ * :folding=explicit:collapseFolds=1:
+ *
+ * Copyright (C) 2016 Dale Anson
+ *
+ * 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.
+ */
+
+package org.gjt.sp.jedit.print;
+
+
+import javax.print.attribute.Attribute;
+import javax.print.attribute.IntegerSyntax;
+import javax.print.attribute.PrintJobAttribute;
+import javax.print.attribute.PrintRequestAttribute;
+
+/**
+ * Custom print request attribute to represent a page range type, i.e. all pages,
+ * current page, range of pages, just a selection of lines, or only odd or even
+ * pages.
+ */
+public class PrintRangeType extends IntegerSyntax implements PrintRequestAttribute, PrintJobAttribute
+{
+
+ private static final long serialVersionUID = -6426631421680023833L;
+ public static PrintRangeType ALL = new PrintRangeType( 0 );
+ public static PrintRangeType ODD = new PrintRangeType( 1 );
+ public static PrintRangeType EVEN = new PrintRangeType( 2 );
+ public static PrintRangeType RANGE = new PrintRangeType( 3 );
+ public static PrintRangeType CURRENT_PAGE = new PrintRangeType( 4 );
+ public static PrintRangeType SELECTION = new PrintRangeType( 5 );
+
+ public PrintRangeType( int value )
+ {
+ super( value, 0, 5 );
+ }
+
+ public boolean equals( Object object )
+ {
+ return super.equals( object ) && object instanceof PrintRangeType;
+ }
+
+ public final Class< ? extends Attribute> getCategory()
+ {
+ return PrintRangeType.class;
+ }
+
+ public final String getName()
+ {
+ return "printRangeType";
+ }
+
+ public String toString()
+ {
+ StringBuilder sb = new StringBuilder( "PageRangeType: " );
+ switch ( getValue() )
+ {
+ case 0:
+ sb.append( "0 ALL" );
+ break;
+ case 1:
+ sb.append( "1 ODD" );
+ break;
+ case 2:
+ sb.append( "2 EVEN" );
+ break;
+ case 3:
+ sb.append( "3 RANGE" );
+ break;
+ case 4:
+ sb.append( "4 CURRENT_PAGE" );
+ break;
+ case 6:
+ sb.append( "5 SELECTION" );
+ break;
+ }
+
+ return sb.toString();
+ }
+}
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/print/Reverse.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/print/Reverse.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/print/Reverse.java 1970-01-01 00:00:00.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/print/Reverse.java 2018-04-08 23:57:33.000000000 +0000
@@ -0,0 +1,57 @@
+/*
+ * Reverse.java - Print attribute indicating reverse print order
+ * :tabSize=4:indentSize=4:noTabs=false:
+ * :folding=explicit:collapseFolds=1:
+ *
+ * Copyright (C) Dale Anson
+ *
+ * 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.
+ */
+
+package org.gjt.sp.jedit.print;
+
+
+import javax.print.attribute.Attribute;
+import javax.print.attribute.DocAttribute;
+import javax.print.attribute.PrintJobAttribute;
+import javax.print.attribute.PrintRequestAttribute;
+
+
+/**
+ * Custom print attribute indicating the pages should be printed in reverse
+ * order. This is just a marker attribute, if present, pages should be printed
+ * in reverse order, if not present, then print pages in forward order.
+ */
+public class Reverse implements DocAttribute, PrintRequestAttribute, PrintJobAttribute
+{
+
+ private static final long serialVersionUID = -2823970704630722439L;
+
+ public boolean equals( Object object )
+ {
+ return object != null && object instanceof Reverse && object.getClass() == this.getClass();
+ }
+
+ public final Class< ? extends Attribute> getCategory()
+ {
+ return Reverse.class;
+ }
+
+ public final String getName()
+ {
+ return "reverse";
+ }
+}
+
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/services.xml jedit-5.5.0+dfsg/org/gjt/sp/jedit/services.xml
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/services.xml 2017-03-18 13:30:34.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/services.xml 2018-04-08 23:57:31.000000000 +0000
@@ -122,6 +122,11 @@
new LineSepWidgetFactory();
+
+ import org.gjt.sp.jedit.gui.statusbar.*;
+ new LockedWidgetFactory();
+
+
import org.gjt.sp.jedit.gui.statusbar.*;
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/syntax/Chunk.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/syntax/Chunk.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/syntax/Chunk.java 2017-03-18 13:30:28.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/syntax/Chunk.java 2018-04-08 23:57:24.000000000 +0000
@@ -241,9 +241,9 @@
* doesn't match any installed fonts. The following
* check skips fonts that don't exist.
*/
- Font f = new Font(family, Font.PLAIN, 12);
- if (!"dialog".equalsIgnoreCase(f.getFamily()) ||
- "dialog".equalsIgnoreCase(family))
+ Font f = Font.decode(props.getProperty("view.fontSubstList." + i));
+ if (f != null && (!"dialog".equalsIgnoreCase(f.getFamily()) ||
+ "dialog".equalsIgnoreCase(family)))
userFonts.add(f);
i++;
}
@@ -256,6 +256,69 @@
glyphCache = null;
} //}}}
+ //{{{ getSubstFont() method
+ /**
+ * Returns the first font which can display a character from
+ * configured substitution candidates, or null if there is no
+ * such font.
+ */
+ public static Font getSubstFont(int codepoint)
+ {
+ // Workaround for a problem reported in SF.net patch #3480246
+ // > If font substitution with system fonts is enabled,
+ // > I get for inserted control characters strange mathematical
+ // > symbols from a non-unicode font in my system.
+ if (Character.isISOControl(codepoint))
+ return null;
+
+ for (Font candidate: getFontSubstList())
+ {
+ if (candidate.canDisplay(codepoint))
+ {
+ return candidate;
+ }
+ }
+ return null;
+ } //}}}
+
+ //{{{ deriveSubstFont() method
+ /**
+ * Derives a font to match the main font for purposes of
+ * font substitution.
+ * Preserves any transformations from main font.
+ * For system-fallback fonts, derives size and style from main font.
+ *
+ * @param mainFont Font to derive from
+ * @param candidateFont Font to transform
+ */
+ public static Font deriveSubstFont(Font mainFont, Font candidateFont)
+ {
+ // adopt subst font family and size, but preserve any transformations
+ // i.e. if font is squashed/sheared, subst font glyphs should be squashed
+ Font substFont = candidateFont.deriveFont(mainFont.getTransform());
+
+ // scale up system fonts (point size 1) to size of main font
+ if (substFont.getSize() == 1)
+ substFont = substFont.deriveFont(mainFont.getStyle(),
+ mainFont.getSize());
+
+ return substFont;
+ } //}}}
+
+ //{{{ usedFontSubstitution() method
+ /**
+ * Returns true if font substitution was used in the layout of this chunk.
+ * If substitution was not used, the chunk may be assumed to be composed
+ * of one glyph using a single font.
+ */
+ public boolean usedFontSubstitution()
+ {
+ return (fontSubstEnabled && glyphs != null &&
+ (glyphs.length > 1 ||
+ (glyphs.length == 1 && glyphs[0].getFont() != style.getFont())));
+ }
+ //}}}
+
//{{{ Package private members
//{{{ Instance variables
@@ -514,6 +577,14 @@
//}}}
//{{{ getFontSubstList() method
+ /**
+ * Obtain a list of preferred fallback fonts as specified by the user
+ * (see Text Area in Global Options), as well as a list of all fonts
+ * specified in the system.
+ * Note that preferred fonts are returned with sizes as specified by the
+ * user, but system fonts all have a point size of 1. These should be
+ * scaled up once the main font is known (see layoutGlyphs()).
+ */
private static Font[] getFontSubstList()
{
if (fontSubstList == null)
@@ -543,31 +614,6 @@
return fontSubstList;
} //}}}
- //{{{ getSubstFont() method
- /**
- * Returns the first font which can display a character from
- * configured substitution candidates, or null if there is no
- * such font.
- */
- private static Font getSubstFont(int codepoint)
- {
- // Workaround for a problem reported in SF.net patch #3480246
- // > If font substitution with system fonts is enabled,
- // > I get for inserted control characters strange mathematical
- // > symbols from a non-unicode font in my system.
- if (Character.isISOControl(codepoint))
- return null;
-
- for (Font candidate: getFontSubstList())
- {
- if (candidate.canDisplay(codepoint))
- {
- return candidate;
- }
- }
- return null;
- } //}}}
-
//{{{ drawGlyphs() method
/**
* Draws the internal list of glyph vectors into the given
@@ -663,8 +709,10 @@
int charCount = Character.charCount(nextChar);
assert !mainFont.canDisplay(nextChar);
Font substFont = getSubstFont(nextChar);
+
if (substFont != null)
{
+ substFont = deriveSubstFont(mainFont, substFont);
subst.addRange(substFont, charCount);
}
else
@@ -758,10 +806,9 @@
{
return;
}
- Font font = (rangeFont == null) ?
- mainFont :
- rangeFont.deriveFont(mainFont.getStyle(),
- mainFont.getSize());
+
+ Font font = (rangeFont == null) ? mainFont : rangeFont;
+
GlyphVector gv = layoutGlyphVector(font, frc,
text, rangeStart, rangeStart + rangeLength);
glyphs.add(gv);
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/jedit/View.java jedit-5.5.0+dfsg/org/gjt/sp/jedit/View.java
--- jedit-5.4.0+dfsg/org/gjt/sp/jedit/View.java 2017-03-18 13:30:28.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/jedit/View.java 2018-04-08 23:57:31.000000000 +0000
@@ -135,7 +135,7 @@
*
* @author Slava Pestov
* @author John Gellene (API documentation)
- * @version $Id: View.java 24469 2016-07-31 01:55:18Z ezust $
+ * @version $Id: View.java 24814 2018-01-10 03:51:43Z ezust $
*/
public class View extends JFrame implements InputHandlerProvider
{
@@ -778,7 +778,7 @@
editPane.focusOnTextArea();
}
else
- javax.swing.UIManager.getLookAndFeel().provideErrorFeedback(null);
+ javax.swing.UIManager.getLookAndFeel().provideErrorFeedback(null);
} //}}}
//{{{ unsplitCurrent() method
@@ -839,7 +839,7 @@
editPane.focusOnTextArea();
}
else
- javax.swing.UIManager.getLookAndFeel().provideErrorFeedback(null);
+ javax.swing.UIManager.getLookAndFeel().provideErrorFeedback(null);
} //}}}
//{{{ resplit() method
@@ -851,7 +851,7 @@
public void resplit()
{
if(lastSplitConfig == null)
- javax.swing.UIManager.getLookAndFeel().provideErrorFeedback(null);
+ javax.swing.UIManager.getLookAndFeel().provideErrorFeedback(null);
else
setSplitConfig(null,lastSplitConfig);
} //}}}
@@ -1467,6 +1467,8 @@
*/
boolean confirmToCloseDirty()
{
+ boolean autosaveUntitled = jEdit.getBooleanProperty("autosaveUntitled");
+ boolean suppressNotSavedConfirmUntitled = jEdit.getBooleanProperty("suppressNotSavedConfirmUntitled") || autosaveUntitled;
Set checkingBuffers = getOpenBuffers();
for (View view: jEdit.getViews())
{
@@ -1478,7 +1480,7 @@
}
for (Buffer buffer: checkingBuffers)
{
- if (buffer.isDirty())
+ if (buffer.isDirty() && !(buffer.isUntitled() && suppressNotSavedConfirmUntitled))
{
return new CloseDialog(this, checkingBuffers).isOK();
}
@@ -1675,21 +1677,22 @@
}
else
{
+ boolean autosaveUntitled = jEdit.getBooleanProperty("autosaveUntitled");
+
// the component is an editPane
EditPane editPane = (EditPane) component;
splitConfig.append('"');
- splitConfig.append(StandardUtilities.charsToEscapes(
- editPane.getBuffer().getPath()));
+ Buffer editPaneBuffer = editPane.getBuffer();
+ splitConfig.append(StandardUtilities.charsToEscapes(editPaneBuffer.getPath()));
splitConfig.append("\" buffer");
BufferSet bufferSet = editPane.getBufferSet();
Buffer[] buffers = bufferSet.getAllBuffers();
for (Buffer buffer : buffers)
{
- if (!buffer.isNewFile())
+ if (!buffer.isNewFile() || (buffer.isUntitled() && autosaveUntitled))
{
splitConfig.append(" \"");
- splitConfig.append(StandardUtilities.charsToEscapes(
- buffer.getPath()));
+ splitConfig.append(StandardUtilities.charsToEscapes(buffer.getPath() ));
splitConfig.append("\" buff");
}
}
@@ -1787,7 +1790,7 @@
if (buffer == null)
{
buffer = jEdit.openTemporary(jEdit.getActiveView(), null,
- path, true, null);
+ path, true, null, true);
jEdit.commitTemporary(buffer);
}
}
diff -Nru jedit-5.4.0+dfsg/org/gjt/sp/util/Log.java jedit-5.5.0+dfsg/org/gjt/sp/util/Log.java
--- jedit-5.4.0+dfsg/org/gjt/sp/util/Log.java 2017-03-18 13:30:34.000000000 +0000
+++ jedit-5.5.0+dfsg/org/gjt/sp/util/Log.java 2018-04-08 23:58:37.000000000 +0000
@@ -57,7 +57,7 @@
* to the log, see {@link #init}.
*
* @author Slava Pestov
- * @version $Id: Log.java 24428 2016-06-23 02:49:29Z daleanson $
+ * @version $Id: Log.java 24740 2017-09-20 17:16:54Z daleanson $
*/
public class Log
{
@@ -201,6 +201,43 @@
{
Log.beepOnOutput = beepOnOutput;
} //}}}
+
+ public static void setMaxLines(int newMax)
+ {
+ if (newMax == MAXLINES)
+ return;
+
+ // find last non-null entry in log array
+ int lineCount = 0;
+ for (int i = 0; i < log.length; i++)
+ {
+ if (log[i] == null)
+ break;
+ ++lineCount;
+ }
+
+ // copy entries from log to newLog
+ String[] newLog = new String[newMax];
+ if (newMax > lineCount)
+ {
+ System.arraycopy(log, 0, newLog, 0, lineCount);
+ }
+ else
+ {
+ // lineCount > newMax
+ System.arraycopy(log, lineCount - newMax, newLog, 0, newMax);
+ logLineCount = newMax;
+ }
+
+ MAXLINES = newMax;
+ log = newLog;
+ listModel.update(lineCount, true);
+ }
+
+ public static int getMaxLinex()
+ {
+ return MAXLINES;
+ }
//{{{ flushStream() method
/**
@@ -344,7 +381,7 @@
//{{{ Instance variables
private static final Object LOCK;
- private static final String[] log;
+ private static String[] log;
private static int logLineCount;
private static boolean wrap;
private static int level;
diff -Nru jedit-5.4.0+dfsg/org/jedit/localization/jedit_cs.props jedit-5.5.0+dfsg/org/jedit/localization/jedit_cs.props
--- jedit-5.4.0+dfsg/org/jedit/localization/jedit_cs.props 2017-03-18 13:30:24.000000000 +0000
+++ jedit-5.5.0+dfsg/org/jedit/localization/jedit_cs.props 2018-04-08 23:58:42.000000000 +0000
@@ -51,8 +51,7 @@
action-set.macros=Makra
action-set.plugin=Plugin: {0}
-macro-handler.beanshell.lahbel=BeanShell skript
-macro-handler.beanshell.glob=*.bsh
+macro-handler.beanshell.label=BeanShell skript
save-layout-failed.message=Nepovedlo se uložit dokovací rozmístění.
load-layout.title=Načíst dokovací rozmístění
@@ -712,7 +711,7 @@
({2})\n\
\n\
Pro využití jiného kódování, zkuste příkazy v menu \n\
- Soubor->Otevřít v kódování
+ Soubor->Otevřít v kódování\n\
\n\
Pokud jste opravdu zaseklí a nevíte kudy kam, zkuste \n\
kódování "ASCII" nebo "8859_1".
@@ -1245,9 +1244,8 @@
options.general.checkModStatus.silentReload=Automaticky znovunačíst bez upozornění
options.general.checkModStatusUpon=Kontrolovat změnu souboru pokud:
options.general.checkModStatusUpon.focus=Aplikace má focus
-options.general.checkModStatusUpon.all=Aplikace má focus, buffer má focus nebo probíhá ukládání jakéhokoliv bufferu
-options.general.checkModStatusUpon.operations=buffer má focus nebo probíhá ukládání jakéholiv bufferu
-options.general.checkModStatusUpon.focusBuffer=buffer je právě navštíven nebo probíhá ukládání
+options.general.checkModStatusUpon.all=Aplikace má focus, buffer je právě navštíven nebo probíhá ukládání jakéhokoliv bufferu
+options.general.checkModStatusUpon.visitBuffer=buffer je právě navštíven
options.general.checkModStatusUpon.none=ukládání bufferu
options.general.recentFiles=Nedávné soubory k zapamatování:
options.general.hypersearch.maxWarningResults=Maximální počet výsledků hyperhledání:
@@ -1488,7 +1486,6 @@
options.save-back.confirmSaveAll="Uložit všechny buffery" žádá o potvrzení
options.save-back.autosaveUntitled=Autosave nepojmenovaných bufferů
options.save-back.suppressNotSavedConfirmUntitled=Nikdy neoznačovat nepojmenované buffery jako změněné.
-options.save-back.suppressNotSavedConfirmUntitled.tooltip=Zaškrnete-li tuto možnost, znamená to, že nepojmenované buffery budou vymazány, kdykoliv je vytvořen nový.(je to feature!)
options.save-back.useMD5forDirtyCalculation=Nikdy neoznačovat buffery jako změněné, pokud je obsah nezměněn.
options.save-back.useMD5forDirtyCalculation.tooltip=Porovnáním délky a MD5 hashe bufferu v čase načtení se rozhodne, zda je upravený buffer stále změněný.
options.save-back.saveAsUsesFSB=Prohlížeč souborového systému využívá jako výchozí uložení "Uložit jako"
@@ -1999,16 +1996,14 @@
install-plugins.info.releaseDate=Datum vydání
install-plugins.info.version=Verze
install-plugins.info.category=Kategorie
+install-plugins.info.author=Autor
+install-plugins.info.released=Vydáno
install-plugins.totalSize={0} plugin(ů), celková velikost: {1}
install-plugins.select-all=Vybrat vše
install-plugins.install=Instalovat
install-plugins.show-updates=Zobrazit updaty
-install-plugins.info=Autor : {0}\n\
- Vydáno : {1}\n\
- {2}
-
update-plugins.title=Update
plugin-manager.progress=Stahuji {0} z mirroru {1}
@@ -2277,8 +2272,6 @@
macro.rs.DisplayShortcuts.Close.label=Zavřít
macro.rs.DisplayShortcuts.WriteToBuffer.label=Zapsat do bufferu
macro.rs.DisplayShortcuts.ShortcutList.label=Seznam klávesových zkratek
-macro.rs.DisplayShortcuts.Center.label=Střed
-macro.rs.DisplayShortcuts.South.label=Jih
#}}}
#{{{ Hex Convert
@@ -2291,12 +2284,7 @@
#{{{ Make Bug Report
macro.rs.MakeBugReport.OpeningActivityLog.error=Chyba při otevírání logu aktivit.
macro.rs.MakeBugReport.UsefulEntriesForReport.label=Záznamy logu aktivit mohou být užitečné při nahlašování bugů:\n\n.
-macro.rs.MakeBugReport.MessagejEdit.label=[zpráva] jEdit:
-macro.rs.MakeBugReport.NoticejEdit.label=[upozornění] jEdit:
-macro.rs.MakeBugReport.NoticeJarClassLoader.label=[upozornění] JARClassLoader:
-macro.rs.MakeBugReport.MessagejEditStartupComplete.label=[zpráva] jEdit: Spuštění hotovo
-macro.rs.MakeBugReport.Error.label=[chyba]
-macro.rs.MakeBugReport.ReadingActivityLog.error=Chyba při čtení logu aktivit
+macro.rs.MakeBugReport.ReadingActivityLog.error=Chyba při čtení logu aktivit.
#}}}
#{{{ Run Script
@@ -2420,9 +2408,6 @@
Editing/Duplicate_Lines_Above.label=Duplikovat řádky nad
Editing/Duplicate_Lines_Below.label=Duplikovat řádky pod
-Editing/Emacs_Ctrl-K.label=Emacs Ctrl-K
-Editing/Emacs_Next_Line.label=Emacs další řádek
-Editing/Emacs_Previous_Line.label=Emacs předchozí řádek
Editing/Go_to_Column.label=Jdi na sloupec
Editing/Greedy_Backspace.label=Greedy Backspace
Editing/Greedy_Delete.label=Greedy Delete
@@ -2443,7 +2428,6 @@
Files/Browse_Buffer_Directory.label=Prohlížet adresář bufferu
Files/Browse_Directory.label=Prohlížet adresář
Files/Buffer_Switcher.label=Přepínač bufferu
-Files/Close_All_Except_Active.label=Zavřít vše kromě aktivního
Files/Copy_Name_to_Clipboard.label=Kopírovat název do schránky
Files/Copy_Path_to_Clipboard.label=Kopírovat cestu do schránky
Files/Delete_Current.label=Smazat aktuální
@@ -2457,6 +2441,14 @@
Files/Toggle_ReadOnly.label=Přepnout ReadOnly (pouze pro čtení)
#}}}
+#{{{ Emacs
+macros.folder.Emacs.label=Emacs
+
+Emacs/Emacs_Ctrl-K.label=Emacs Ctrl-K
+Emacs/Emacs_Next_Line.label=Emacs další řádek
+Emacs/Emacs_Previous_Line.label=Emacs předchozí řádek
+#}}}
+
#{{{ Interface
macros.folder.Interface.label=Rozhraní
diff -Nru jedit-5.4.0+dfsg/org/jedit/localization/jedit_de.props jedit-5.5.0+dfsg/org/jedit/localization/jedit_de.props
--- jedit-5.4.0+dfsg/org/jedit/localization/jedit_de.props 2017-03-18 13:30:24.000000000 +0000
+++ jedit-5.5.0+dfsg/org/jedit/localization/jedit_de.props 2018-04-08 23:58:42.000000000 +0000
@@ -58,7 +58,7 @@
#{{{ Common strings
common.ok=OK
-common.cancel=Abbruch
+common.cancel=Abbrechen
common.close=Schließen
common.error=Fehler
common.apply=Anwenden
@@ -75,9 +75,9 @@
common.loading=Lade...
common.reset=Zurücksetzen
-#lineSep.unix=Unix (\\n).
-#lineSep.windows=DOS/Windows (\\r\\n).
-#lineSep.mac=MacOS (\\r).
+lineSep.unix=Unix (\\n)
+lineSep.windows=DOS/Windows (\\r\\n)
+lineSep.mac=MacOS (\\r)
#}}}
#{{{ Miscellaneous
@@ -89,7 +89,6 @@
action-set.plugin=Plugin: {0}
macro-handler.beanshell.label=BeanShell-Skript
-#macro-handler.beanshell.glob=*.bsh
save-layout-failed.message=Dock-Layout konnte nicht gespeichert werden.
load-layout.title=Dock-Layout laden
@@ -575,32 +574,34 @@
view.status.io.done=Ein-/Ausgabeoperation vollständig
view.status.io=I/O: {0} Operationen in Arbeit
view.status.linesep-changed=Zeilenende-Zeichen gesetzt auf "{0}"
-view.status.linesep-tooltip=Zeilenende-Zeichen (zum ändern klicken)
+view.status.linesep-tooltip=Zeilenende-Zeichen (zum Ändern klicken)
view.status.memory-tooltip=Java Heap-Speicher: {0}Kb/{1}Kb
view.status.mode-tooltip=Bearbeitungsmodus, Faltmodus, Zeichenkodierung
view.status.multi-changed=Mehrfachauswahl-Modus ist "{0,choice,0#Aus|1#Ein}"
-view.status.multi-tooltip=Mehrfachauswahl-Modus (zum ändern klicken)
+view.status.multi-tooltip=Mehrfachauswahl-Modus (zum Ändern klicken)
view.status.narrow=Menüpunkt "Alle Zeilen anzeigen" wählen, um den gesamten Text wieder sichtbar zu machen
view.status.no-markers=keine Lesezeichen gesetzt
view.status.no-registers=keine Register definiert
view.status.overwrite-changed=Überschreib-Modus ist "{0,choice,0#Aus|1#Ein}"
-view.status.overwrite-tooltip=Überschreib-Modus (zum ändern klicken)
+view.status.overwrite-tooltip=Überschreib-Modus (zum Ändern klicken)
view.status.paste-string-register=Einfügen aus Register? [{0}]
view.status.print=Seite {0} wird gedruckt
view.status.quick-copy=Schnellkopier-Modus - markierter Text ersetzt Auswahl
view.status.recording=Makro wird aufgenommen
view.status.rect-select-changed=Spaltenauswahl ist "{0,choice,0#Aus|1#Ein}"
-view.status.rect-tooltip=Spaltenauswahl-Modus (zum ändern klicken)
+view.status.rect-tooltip=Spaltenauswahl-Modus (zum Ändern klicken)
view.status.replace-all={0} Fundstelle(n) in {1} Datei(en) ersetzt
view.status.search-not-found=Suchtext nicht gefunden!
view.status.select-marker=Auswählen bis Lesezeichen mit Kürzel? [{0}]
view.status.swap-marker=Cursor-Position tauschen mit Lesezeichen: Kürzel? [{0}]
view.status.vertical-paste-string-register=Vertikal einfügen aus Register ? [{0}]
view.status.wrap-changed=Wortumbruch-Modus ist jetzt "{0}"
-view.status.wrap-tooltip=Wortumbruch-Modus ist {0} (zum ändern klicken)
-view.status.indent-tooltip=Indikator für Automatische Einrückung (zum ändern klicken)
+view.status.wrap-tooltip=Wortumbruch-Modus ist {0} (zum Ändern klicken)
+view.status.indent-tooltip=Indikator für Automatische Einrückung (zum Ändern klicken)
view.status.autoindent-changed=Automatische Einrückung ist jetzt "{0}"
view.status.bufferset-tooltip=Dateisatz-Modus ist {0}
+view.status.locked-changed=Datei ist {0,choice,0#entsperrt|1#gesperrt}
+view.status.locked-tooltip=Datei ist {0,choice,0#entsperrt|1#gesperrt} (zum Ändern klicken)
wrap.none=ausgeschaltet
wrap.hard=hart
wrap.soft=weich
@@ -625,21 +626,21 @@
print.dialog.Advanced=Erweitert
print.dialog.All_pages=Alle Seiten
print.dialog.All_sheets=Alle Blätter
-print.dialog.At=bei
+print.dialog.At=Zeitpunkt:
print.dialog.Automatic-Feeder=Automatischer Vorlageneinzug
print.dialog.Bottom=Unten
print.dialog.Cassette=Kassette
print.dialog.Collate=Zusammenstellen
-print.dialog.Color=Farbe
+print.dialog.Color=farbig
print.dialog.Copies=Kopien
print.dialog.Current_page=Aktuelle Seite
print.dialog.Draft=Entwurf
-print.dialog.Event_sheets=Gerade Seiten
+print.dialog.Even_sheets=Gerade Seiten
print.dialog.Finishing=Finishing
print.dialog.Form-Source=Formular-Quelle
print.dialog.General=Allgemein
print.dialog.High=Hoch
-print.dialog.Ink=Tinte
+print.dialog.Ink=Farbe
print.dialog.Job=Job
print.dialog.Job_Details=Job-Details
print.dialog.Large-Format=Großformat
@@ -648,11 +649,11 @@
print.dialog.Low=Niedrig
print.dialog.Manual-Envelope=Umschlag manuell
print.dialog.Margins=Ränder
-print.dialog.Medium=Medium
+print.dialog.Medium=Mittel
print.dialog.Monochrome=schwarz/weiß
print.dialog.Normal=Normal
print.dialog.Now=Jetzt
-print.dialog.Odd_sheets=Gerade Seiten
+print.dialog.Odd_sheets=Ungerade Seiten
print.dialog.On_Hold=Beim Halten
print.dialog.Only_print=Nur drucken
print.dialog.Orientation=Ausrichtung
@@ -664,7 +665,7 @@
print.dialog.Paper=Papier
print.dialog.Paper_size=Papiergröße
print.dialog.Paper_source=Papierquelle
-print.dialog.Print_Document=Druckdokument
+print.dialog.Print_Document=Druckzeitpunkt
print.dialog.Priority=Priorität
print.dialog.Quality=Qualität
print.dialog.Range=Bereich
@@ -749,9 +750,9 @@
print.dialog.na-8x10=8\" x 10\" Paper
print.dialog.na-9x11-envelope=9x11 Umschlag
print.dialog.na-9x12-envelope=9x12 Umschlag
-print.dialog.na-10x13-envelope=10x15 Umschlag
-print.dialog.na-10x14-envelope=10x15 Umschlag
-print.dialog.na-10x15-envelope=10x15 Umschlag
+print.dialog.na-10x13-envelope=10x13 Umschlag
+print.dialog.na-10x14-envelope=10x14 Umschlag
+print.dialog.na-10x15-envelope=10x15 Umschlag
print.dialog.na-legal=Legal
print.dialog.na-letter=Letter
print.dialog.na-number-9-envelope=Nr. 9 Umschlag
@@ -765,7 +766,7 @@
print.dialog.personal-envelope=Persönlicher Umschlag
print.dialog.portrait=Hochformat
print.dialog.quarto=Quarto
-print.dialog.reverse-landscape=Querformat gedreht
+print.dialog.reverse-landscape=Querformat gedreht
print.dialog.reverse-portrait=Hochformat gedreht
print.dialog.side=Seite
print.dialog.tabloid=Tabloid
@@ -997,6 +998,13 @@
Ungespeicherte Änderungen in allen Dateien WERDEN VERLOREN GEHEN!
#}}}
+#{{{ File is backup alert
+file-is-backup.title=Backupdatei öffnen
+file-is-backup.message=Die Datei {0} ist wahrscheinlich eine jEdit Backupdatei.
+file-is-backup.open=Öffnen
+file-is-backup.open-locked=Gesperrt Öffnen
+#}}}
+
#{{{ Encoding prompt
encoding-prompt.title=Öffnen mit anderer Zeichenkodierung
encoding-prompt.message=Zu verwendende Zeichenkodierung:
@@ -1419,6 +1427,7 @@
buffer-options.gzipped=GZIP - Datei auf der Festplatte komprimieren
buffer-options.editing=Bearbeiten
buffer-options.mode=Bearbeitungsmodus:
+buffer-options.locked=Gesperrt
#}}}
#{{{ Global options dialog
@@ -1630,7 +1639,8 @@
#{{{ Large files pane
options.large-files.label=Große Dateien
options.editing.largefilemode.title=Modus für große Dateien
-options.editing.largefilemode=Verhalten, wenn eine sehr große Datei geöffnet wird:
+options.editing.largefilemode=Verhalten, wenn eine sehr große Datei geöffnet wird (> {0} Zeichen, oder Zeilenlänge > {1}):
+options.editing.largefilemode.tooltip=Werte können geändert werden über jEdit-Eigenschaften: largeBufferSize und longLineLimit
options.editing.largefilemode.option.ask=Fragen
options.editing.largefilemode.option.full=Volle Syntaxhervorhebung : \
jEdit könnte sehr langsam werden, (nicht empfohlen)
@@ -1703,11 +1713,16 @@
#}}}
#{{{ Save & Backup pane
+options.autosave=Autosave Optionen
+options.backup=Backup Optionen
options.save-back.label=Speichern & Backup
-
-options.save-back.autosave=Auto-Speichern Intervall (Sekunden):
+options.save-back.autosave=Autosave Intervall (Sekunden):
+options.save-back.autosave.tooltip=Zum Deaktivieren auf 0 setzen
options.save-back.backups=Max. Anzahl von Backups:
+options.save-back.backups.tooltip=Zum Deaktivieren auf 0 setzen
options.save-back.backupDirectory=Backup Verzeichnis:
+options.save-back.autosaveDirectory=Autosave Verzeichnis:
+options.save-back.backupDirectory.tooltip=Wenn leer, wird das Verzeichnis der aktiven Datei verwendet. $VARIABLE/-Präfixe sind erlaubt.
options.save-back.backupPrefix=Backup-Präfix für Dateiname:
options.save-back.backupSuffix=Backup-Suffix für Dateiname:
options.save-back.backupEverySave=Backup bei jedem Speichern
@@ -1715,8 +1730,9 @@
options.save-back.twoStageSave.tooltip=Stufe 1: Anlegen einer temporären Datei und dahinein sichern. Stufe 2: Umbenennen der temporären Datei zum wirklichen Namen
options.save-back.confirmSaveAll=Bestätigung für "Alle Dateien speichern"
options.save-back.autosaveUntitled=Unbenannte Dateien automatisch speichern
-options.save-back.suppressNotSavedConfirmUntitled=Unbenannte Dateien niemals als bearbeitet markieren
-options.save-back.suppressNotSavedConfirmUntitled.tooltip="EIN" bedeutet, dass der Inhalt einer unbenannten Datei überschrieben wird, wenn eine neue erzeugt wird (kein Fehler!)
+options.save-back.autosaveUntitled.tooltip=Unbenannte Dateien werden über jEdit-Sitzungen hinweg gespeichert und wiederhergestellt
+options.save-back.suppressNotSavedConfirmUntitled=Unbenannte Dateien ohne Bestätigung schließen
+options.save-back.suppressNotSavedConfirmUntitled.tooltip=Unbenannte Dateien werden ohne Bestätigung geschlossen
options.save-back.useMD5forDirtyCalculation=Dateien mit unverändertem Inhalt niemals als bearbeitet markieren
options.save-back.useMD5forDirtyCalculation.tooltip=Länge und MD5-Summe der Datei im Editor und der entsprechenden Datei auf der Festplatte werden dafür verglichen.
options.save-back.saveAsUsesFSB="Speichern unter" startet im aktuellen Verzeichnis des Dateisystem-Browsers
@@ -1733,9 +1749,10 @@
options.shortcuts.resetkeymap.label=Zurücksetzen
options.shortcuts.resetkeymap.dialog.label=Tastenkürzelsatz zurücksetzen
options.shortcuts.resetkeymap.dialog.title=Tastenkürzelsatz zurücksetzen
-options.shortcuts.keymap.label=Tastenkürzelsatz wählen:
+options.shortcuts.keymap.label=Tastenkürzelsatz:
+options.shortcuts.keymap.tooltip=Ein benannter Satz benutzerdefinierter Tastenkürzel
options.shortcuts.label=Tastenkürzel
-options.shortcuts.select.label=Tastenkürzel bearbeiten:
+options.shortcuts.select.label=Befehlssatz:
options.shortcuts.select.tooltip=Filter für: Eingebaute Befehle, Makros, Plugin-Befehle, Dock-Layouts
options.shortcuts.name=Befehl
options.shortcuts.actionset=Befehlssatz
@@ -2009,7 +2026,7 @@
io-progress-monitor.title=I/O-Threads
io-progress-monitor.caption={0} anstehende Anforderung(en).
io-progress-monitor.idle=Thread im Leerlauf
-io-progress-monitor.abort=Abbruch
+io-progress-monitor.abort=Abbrechen
#{{{ I/O abort dialog box
abort.title=Abort I/O
@@ -2232,7 +2249,6 @@
install-plugins.info.author=Autor
install-plugins.info.released=Freigegeben
install-plugins.info.depends=Abhängig von
-install-plugins.info.optionalDepends=Optional abhängig von
install-plugins.totalSize={0} Plugin(s), Gesamtgröße: {1}
install-plugins.select-all=Alle wählen
@@ -2264,7 +2280,7 @@
fileprop.writeable=Schreiben
fileprop.attribute=Attribut
fileprop.okBtn=OK
-fileprop.cancelBtn=Abbruch
+fileprop.cancelBtn=Abbrechen
fileprop.selectedFiles=Gewählte Dateien
fileprop.selectedDirectories=Gewählte Verzeichnisse
#}}}
@@ -2293,31 +2309,31 @@
# the sample is an example of what the widget will show, for the
# preview in the options
statusbar.mode.label=Datei Bearbeitungsmodus (z.B.: java)
-#statusbar.mode.sample=java
+statusbar.mode.sample=java
statusbar.fold.label=Datei Faltmodus (z.B.: explicit)
-#statusbar.fold.sample=explicit
+statusbar.fold.sample=explicit
statusbar.encoding.label=Datei Zeichenkodierung (z.B.: UTF-8)
-#statusbar.encoding.sample=UTF-8
+statusbar.encoding.sample=UTF-8
statusbar.wrap.label=Datei Wortumbruch-Modus (z.B.: N)
-#statusbar.wrap.sample=N
+statusbar.wrap.sample=N
statusbar.indent.label=Automatische Einrückung (z.B.: F)
-#statusbar.indent.sample=F
+statusbar.indent.sample=F
statusbar.multiSelect.label=Datei Mehrfachauswahl-Modus (z.B.: m)
-#statusbar.multiSelect.sample=m
+statusbar.multiSelect.sample=m
statusbar.rectSelect.label=Datei Spaltenauswahl-Modus (z.B.: r)
-#statusbar.rectSelect.sample=r
+statusbar.rectSelect.sample=r
statusbar.overwrite.label=Datei Überschreib-Modus (z.B.: o)
-#statusbar.overwrite.sample=o
+statusbar.overwrite.sample=o
statusbar.lineSep.label=Datei Zeilenendezeichen (z.B.: U)
-#statusbar.lineSep.sample=U
+statusbar.lineSep.sample=U
statusbar.memory-status.label=Speicherstatus (z.B.: 9/24Mb)
-#statusbar.memory-status.sample=9/24Mb
+statusbar.memory-status.sample=9/24Mb
statusbar.clock.label=Uhrzeit (z.B.: 16:45)
-#statusbar.clock.sample=16:45
+statusbar.clock.sample=16:45
statusbar.buffersets.label=Dateisatz-Modus (z.B.: G)
-#statusbar.buffersets.sample=G
+statusbar.buffersets.sample=G
statusbar.selection-length.label=Zeichenanzahl in Auswahl (z.B.: 192)
-#statusbar.selection-length.sample=192
+statusbar.selection-length.sample=192
statusbar.last-modified.label=Datum der letzen Änderung auf Festplatte (z.B.: 12.03.11 16:43)
statusbar.last-modified.sample=12.03.11 16:43
statusbar.task-monitor.label=Task-Monitor (z.B.: 7 Aufgabe(n))
@@ -2472,12 +2488,12 @@
#}}}
#{{{ Debug BufferSets
-#macro.rs.DebugBuffersets.BuffersetDebugging.label=BUFFERSET DEBUGGING
-#macro.rs.DebugBuffersets.BufferCount.label=BufferCount:
-#macro.rs.DebugBuffersets.BufferList.label=BUFFER LIST
-#macro.rs.DebugBuffersets.EndBufferList.label=END BUFFER LIST
-#macro.rs.DebugBuffersets.EditpaneList.label=EDITPANE LIST
-#macro.rs.DebugBuffersets.EndEditpaneList.label=END EDITPANE LIST
+macro.rs.DebugBuffersets.BuffersetDebugging.label=DATEISEST DEBUGGING
+macro.rs.DebugBuffersets.BufferCount.label=Bufferanzahl:
+macro.rs.DebugBuffersets.BufferList.label=DATEI LISTE
+macro.rs.DebugBuffersets.EndBufferList.label=ENDE DATEI LISTE
+macro.rs.DebugBuffersets.EditpaneList.label=EDITPANE LISTE
+macro.rs.DebugBuffersets.EndEditpaneList.label=ENDE EDITPANE LISTE
#}}}
#{{{ Display Abbreviations
@@ -2513,8 +2529,6 @@
macro.rs.DisplayShortcuts.Close.label=Schließen
macro.rs.DisplayShortcuts.WriteToBuffer.label=Schreibe in Datei
macro.rs.DisplayShortcuts.ShortcutList.label=Liste der Tastenkürzel
-#macro.rs.DisplayShortcuts.Center.label=Center
-#macro.rs.DisplayShortcuts.South.label=South
#}}}
#{{{ Hex Convert
@@ -2527,11 +2541,6 @@
#{{{ Make Bug Report
macro.rs.MakeBugReport.OpeningActivityLog.error=Fehler beim Öffnen des Activity Log.
macro.rs.MakeBugReport.UsefulEntriesForReport.label=Einträge des Activity log, die für die Fehlermeldung nützlich sein könnten:\n\n.
-#macro.rs.MakeBugReport.MessagejEdit.label=[message] jEdit:
-#macro.rs.MakeBugReport.NoticejEdit.label=[notice] jEdit:
-#macro.rs.MakeBugReport.NoticeJarClassLoader.label=[notice] JARClassLoader:
-#macro.rs.MakeBugReport.MessagejEditStartupComplete.label=[message] jEdit: Startup complete
-#macro.rs.MakeBugReport.Error.label=[error]
macro.rs.MakeBugReport.ReadingActivityLog.error=Fehler beim Lesen des Activity Log.
#}}}
@@ -2673,6 +2682,7 @@
#{{{ Emacs
macros.folder.Emacs.label=Emacs
+
Emacs/Emacs_Align_Decls.label=Emacs Dezimalzahlen ausrichten
Emacs/Emacs_Backward_Sentence.label=Emacs Satz rückwärts
Emacs/Emacs_Capitalize_Word.label=Emacs Wort zu Kapitälchen
@@ -2691,10 +2701,11 @@
Emacs/Emacs_Open_Line.label=Emacs Neue Zeile
Emacs/Emacs_Previous_Line.label=Emacs Vorige Zeile
Emacs/Emacs_Set_Mark.label=Emacs Marke setzen
-Emacs/Emacs_Set_Wrap=Emacs Umbruch setzen
+Emacs/Emacs_Set_Wrap.label=Emacs Umbruch setzen
Emacs/Emacs_Transpose_Chars.label=Emacs Zeichen vertauschen
Emacs/Emacs_Transpose_Lines.label=Emacs Zeilen vertauschen
Emacs/Emacs_Upcase_Word.label=Emacs Wort zu Großbuchstaben
+Emacs/EmacsUtil.label=EmacsUtil
#}}}
#{{{ Files
@@ -2703,7 +2714,6 @@
Files/Browse_Buffer_Directory.label=Dateisystem-Browser im Verzeichnis der aktiven Datei
Files/Browse_Directory.label=Dateisystem-Browser mit Verzeichnisabfrage
Files/Buffer_Switcher.label=Datei wechseln
-Files/Close_All_Except_Active.label=Schließe alle anderen
Files/Copy_Name_to_Clipboard.label=Kopiere Dateiname
Files/Copy_Path_to_Clipboard.label=Kopiere Dateipfad
Files/Delete_Current.label=Lösche aktive Datei
diff -Nru jedit-5.4.0+dfsg/org/jedit/localization/jedit_en.props jedit-5.5.0+dfsg/org/jedit/localization/jedit_en.props
--- jedit-5.4.0+dfsg/org/jedit/localization/jedit_en.props 2017-03-18 13:30:24.000000000 +0000
+++ jedit-5.5.0+dfsg/org/jedit/localization/jedit_en.props 2018-04-08 23:58:42.000000000 +0000
@@ -54,7 +54,6 @@
action-set.plugin=Plugin: {0}
macro-handler.beanshell.label=BeanShell script
-macro-handler.beanshell.glob=*.bsh
save-layout-failed.message=Failed to save the docking layout.
load-layout.title=Load Docking Layout
@@ -568,6 +567,8 @@
view.status.indent-tooltip=Automatic indentation indicator (click to change)
view.status.autoindent-changed=Automatic indentation status is now "{0}"
view.status.bufferset-tooltip=BufferSet scope is {0}
+view.status.locked-changed=Buffer is {0,choice,0#unlocked|1#locked}
+view.status.locked-tooltip=Buffer is {0,choice,0#unlocked|1#locked} (click to change)
wrap.none=disabled
wrap.hard=hard
wrap.soft=soft
@@ -601,7 +602,7 @@
print.dialog.Copies=Copies
print.dialog.Current_page=Current page
print.dialog.Draft=Draft
-print.dialog.Event_sheets=Even shoets
+print.dialog.Even_sheets=Even sheets
print.dialog.Finishing=Finishing
print.dialog.Form-Source=Form Source
print.dialog.General=General
@@ -716,8 +717,8 @@
print.dialog.na-8x10=8\" x 10\" Paper
print.dialog.na-9x11-envelope=9x11 Envelope
print.dialog.na-9x12-envelope=9x12 Envelope
-print.dialog.na-10x13-envelope=10x15 Envelope
-print.dialog.na-10x14-envelope=10x15 Envelope
+print.dialog.na-10x13-envelope=10x13 Envelope
+print.dialog.na-10x14-envelope=10x14 Envelope
print.dialog.na-10x15-envelope=10x15 Envelope
print.dialog.na-legal=Legal
print.dialog.na-letter=Letter
@@ -967,6 +968,13 @@
Unsaved changes in any open buffers WILL BE LOST!
#}}}
+#{{{ File is backup alert
+file-is-backup.title=Opening Backup File
+file-is-backup.message=The file {0} is likely a jEdit backup file.
+file-is-backup.open=Open
+file-is-backup.open-locked=Open locked
+#}}}
+
#{{{ Encoding prompt
encoding-prompt.title=Open With Other Encoding
encoding-prompt.message=Character encoding to use:
@@ -1392,6 +1400,7 @@
buffer-options.gzipped=GZIP (compress) file on disk
buffer-options.editing=Editing
buffer-options.mode=Edit mode:
+buffer-options.locked=Locked
#}}}
#{{{ Global options dialog
@@ -1605,7 +1614,8 @@
#{{{ Large files pane
options.large-files.label=Large files
options.editing.largefilemode.title=Large file mode
-options.editing.largefilemode=What should I do about very big files:
+options.editing.largefilemode=What should I do about very big files (> {0} chars, or line length > {1}):
+options.editing.largefilemode.tooltip=Values can be changed via jEdit properties: largeBufferSize and longLineLimit
options.editing.largefilemode.option.ask=Ask what to do when opening a large file
options.editing.largefilemode.option.full=Keep Full syntax : jEdit's syntax highlight will work as usual, jEdit \
may becomevery slow, this is not recommended
@@ -1682,11 +1692,16 @@
#}}}
#{{{ Save & Backup pane
+options.autosave=Autosave Options
+options.backup=Backup Options
options.save-back.label=Saving & Backup
-
options.save-back.autosave=Autosave frequency (secs):
+options.save-back.autosave.tooltip=to disable, set to 0
options.save-back.backups=Max number of backups:
+options.save-back.backups.tooltip=to disable, set to 0
+options.save-back.autosaveDirectory=Autosave directory:
options.save-back.backupDirectory=Backup directory:
+options.save-back.backupDirectory.tooltip=If blank, use buffer directory. $VARIABLE/prefixes allowed.
options.save-back.backupPrefix=Backup filename prefix:
options.save-back.backupSuffix=Backup filename suffix:
options.save-back.backupEverySave=Backup on every save
@@ -1694,9 +1709,10 @@
options.save-back.twoStageSave.tooltip=Stage 1: Create a temporary file and save to it. Stage 2: Rename the temporary file to the real name.
options.save-back.confirmSaveAll="Save All Buffers" asks for confirmation
options.save-back.autosaveUntitled=Autosave untitled buffers
-options.save-back.suppressNotSavedConfirmUntitled=Never mark Untitled buffers dirty.
-options.save-back.suppressNotSavedConfirmUntitled.tooltip=Checking this means untitled buffers get wiped out whenever a new one is created (it's a feature!)
-options.save-back.useMD5forDirtyCalculation=Never mark buffers dirty if contents are unchanged.
+options.save-back.autosaveUntitled.tooltip=Untitled buffers are saved and restored across jEdit sessions.
+options.save-back.suppressNotSavedConfirmUntitled=Close dirty Untitled buffers without confirmation
+options.save-back.suppressNotSavedConfirmUntitled.tooltip=Untitled dirty buffers are closed without confirmation
+options.save-back.useMD5forDirtyCalculation=Never mark buffers dirty if contents are unchanged
options.save-back.useMD5forDirtyCalculation.tooltip=Compare with length and MD5 hash of buffer at load time, to decide if an edited buffer is still dirty.
options.save-back.saveAsUsesFSB="Save As" defaults to File System Browser directory
#}}}
@@ -1712,10 +1728,11 @@
options.shortcuts.resetkeymap.label=reset
options.shortcuts.resetkeymap.dialog.label=Reset the keymap
options.shortcuts.resetkeymap.dialog.title=reset keymap
-options.shortcuts.keymap.label=Choose keymap:
+options.shortcuts.keymap.label=Keymap:
+options.shortcuts.keymap.tooltip=A named set of customized keyboard shortcuts
options.shortcuts.label=Shortcuts
-options.shortcuts.select.label=Edit Shortcuts:
-options.shortcuts.select.tooltip=You can select globals, macros, or plugin shortcuts
+options.shortcuts.select.label=Action Set:
+options.shortcuts.select.tooltip=You can select built-ins, macros, or plugin shortcuts
options.shortcuts.name=Command
options.shortcuts.actionset=Action set
options.shortcuts.shortcut1=Primary shortcut
@@ -1885,7 +1902,7 @@
options.browser.general.defaultPath.favorites=Favorites
options.browser.general.defaultPath.home=Home directory
options.browser.general.defaultPath.last=Most recently visited directory
-options.browser.general.defaultPath.buffer=Parent directory of current buffer
+options.browser.general.defaultPath.buffer=Directory of current buffer
options.browser.general.defaultPath.working=Working directory of jEdit process
options.browser.general.showMenubar=Show menu bar
options.browser.general.showToolbar=Show tool bar
@@ -2214,7 +2231,6 @@
install-plugins.info.author=Author
install-plugins.info.released=Released
install-plugins.info.depends=Depends on
-install-plugins.info.optionalDepends=Optionally depends on
install-plugins.totalSize={0} plugin(s), total size: {1}
install-plugins.select-all=Select All
@@ -2494,8 +2510,6 @@
macro.rs.DisplayShortcuts.Close.label=Close
macro.rs.DisplayShortcuts.WriteToBuffer.label=Write to buffer
macro.rs.DisplayShortcuts.ShortcutList.label=Keyboard shortcut list
-macro.rs.DisplayShortcuts.Center.label=Center
-macro.rs.DisplayShortcuts.South.label=South
#}}}
#{{{ Hex Convert
@@ -2508,12 +2522,7 @@
#{{{ Make Bug Report
macro.rs.MakeBugReport.OpeningActivityLog.error=Error opening Activity Log.
macro.rs.MakeBugReport.UsefulEntriesForReport.label=Activity log entries that might be useful in a bug report:\n\n.
-macro.rs.MakeBugReport.MessagejEdit.label=[message] jEdit:
-macro.rs.MakeBugReport.NoticejEdit.label=[notice] jEdit:
-macro.rs.MakeBugReport.NoticeJarClassLoader.label=[notice] JARClassLoader:
-macro.rs.MakeBugReport.MessagejEditStartupComplete.label=[message] jEdit: Startup complete
-macro.rs.MakeBugReport.Error.label=[error]
-macro.rs.MakeBugReport.ReadingActivityLog.error=Error reading Activity Log
+macro.rs.MakeBugReport.ReadingActivityLog.error=Error reading Activity Log.
#}}}
#{{{ Run Script
@@ -2638,6 +2647,7 @@
Editing/Duplicate_Lines_Above.label=Duplicate Lines Above
Editing/Duplicate_Lines_Below.label=Duplicate Lines Below
Editing/Go_to_Column.label=Go To Column
+Editing/Go_to_Offset.label=Go to Offset
Editing/Greedy_Backspace.label=Greedy Backspace
Editing/Greedy_Delete.label=Greedy Delete
Editing/Greedy_Left.label=Greedy Left
@@ -2653,6 +2663,7 @@
#{{{ Emacs
macros.folder.Emacs.label=Emacs
+
Emacs/Emacs_Align_Decls.label=Emacs Align Decls
Emacs/Emacs_Backward_Sentence.label=Emacs Backward Sentence
Emacs/Emacs_Capitalize_Word.label=Emacs Capitalize Word
@@ -2671,10 +2682,11 @@
Emacs/Emacs_Open_Line.label=Emacs Open Line
Emacs/Emacs_Previous_Line.label=Emacs Previous Line
Emacs/Emacs_Set_Mark.label=Emacs Set Mark
-Emacs/Emacs_Set_Wrap=Emacs Set Wrap
+Emacs/Emacs_Set_Wrap.label=Emacs Set Wrap
Emacs/Emacs_Transpose_Chars.label=Emacs Transpose Chars
Emacs/Emacs_Transpose_Lines.label=Emacs Transpose Lines
Emacs/Emacs_Upcase_Word.label=Emacs Upcase Word
+Emacs/EmacsUtil.label=EmacsUtil
#}}}
#{{{ Files
@@ -2683,7 +2695,6 @@
Files/Browse_Buffer_Directory.label=Browse Buffer Directory
Files/Browse_Directory.label=Browse Directory
Files/Buffer_Switcher.label=Buffer Switcher
-Files/Close_All_Except_Active.label=Close All Except Active
Files/Copy_Name_to_Clipboard.label=Copy Name to Clipboard
Files/Copy_Path_to_Clipboard.label=Copy Path to Clipboard
Files/Delete_Current.label=Delete Current
@@ -2693,6 +2704,7 @@
Files/Next_Dirty_Buffer.label=Next Dirty Buffer
Files/Open_Path.label=Open Path
Files/Open_Selection.label=Open Selection
+Files/Open_Selection_In_Desktop.label=Open Selection In Desktop
Files/Send_Buffer_To_Next_Split.label=Send Buffer To Next Split
Files/Toggle_ReadOnly.label=Toggle ReadOnly
#}}}
@@ -2732,8 +2744,11 @@
Misc/Display_Character_Code.label=Display Character Code
Misc/Display_Shortcuts.label=Display Shortcuts
Misc/Evaluate_Buffer_in_BeanShell.label=Evaluate Buffer in BeanShell
+Misc/Generate_Encodings_List.label=Generate Encodings List
+Misc/Generate_Modes_List.label=Generate Modes List
Misc/Hex_Convert.label=Hex Convert
Misc/HyperSearch_Results_to_Buffer.label=HyperSearch Results to Buffer
+Misc/Insert_Plugins_List.label=Insert Plugins List
Misc/Make_Bug_Report.label=Make Bug Report
Misc/Run_Script.label=Run Script
Misc/Show_Threads.label=Show Threads
@@ -2761,6 +2776,7 @@
Text/Line_Filter.label=Line Filter
Text/Next_Char.label=Next Char
Text/Reverse_Lines.label=Reverse Lines
+Text/Reverse_Selection.label=Reverse Selection
Text/Single_Space_Buffer.label=Single Space Buffer
#}}}
diff -Nru jedit-5.4.0+dfsg/org/jedit/localization/jedit_fr.props jedit-5.5.0+dfsg/org/jedit/localization/jedit_fr.props
--- jedit-5.4.0+dfsg/org/jedit/localization/jedit_fr.props 2017-03-18 13:30:24.000000000 +0000
+++ jedit-5.5.0+dfsg/org/jedit/localization/jedit_fr.props 2018-04-08 23:58:42.000000000 +0000
@@ -53,7 +53,6 @@
action-set.plugin=Plugin : {0}
macro-handler.beanshell.label=Script BeanShell
-macro-handler.beanshell.glob=*.bsh
save-layout-failed.message=Impossible d''enregistrer la disposition d'ancrage.
load-layout.title=Chargement de la disposition d'ancrage
@@ -541,7 +540,7 @@
view.status.linesep-tooltip=Séparateur de ligne (clic pour modifier)
view.status.memory-tooltip=Mémoire allouée é Java : {0}Ko/{1}Ko
view.status.mode-tooltip=Mode d'édition, mode de repli et encodage courants
-view.st,atus.multi-changed=Le mode de sélection multiple est {0,choice,0#désactivé|1#activé}
+view.status.multi-changed=Le mode de sélection multiple est {0,choice,0#désactivé|1#activé}
view.status.multi-tooltip=Mode de sélection multiple (clic pour modifier)
view.status.narrow=Sélectionner « Développer tous les replis » pour afficher à nouveau tout le texte
view.status.no-markers=Aucun marqueur défini
@@ -735,7 +734,7 @@
badurl.title=URL invalide
# {0} - L'URL
# {1} - L'erreur
-badurl.message=Cette URL est invalide : {0}\n
+badurl.message=Cette URL est invalide : {0}\n\
({1})
#}}}
@@ -1239,8 +1238,7 @@
options.general.checkModStatusUpon=Vérifier la modification de fichier lorsque :
options.general.checkModStatusUpon.focus=l'application est active
options.general.checkModStatusUpon.all=l'application est active, le tampon est visité ou un tampon est enregistré
-options.general.checkModStatusUpon.operations=le tampon est visité ou un tampon est enregistré
-options.general.checkModStatusUpon.focusBuffer=le tampon est visité ou enregistré
+options.general.checkModStatusUpon.visitBuffer=le tampon est visité
options.general.checkModStatusUpon.none=le tampon est enregistré
options.general.recentFiles=Fichiers ouverts récemment à mémoriser :
options.general.hypersearch.maxWarningResults=Nombre de résultats d'hyper-recherche max :
@@ -1319,7 +1317,7 @@
options.docking.label=Ancrage
options.docking.title=Fenêtre
options.docking.dockPosition=Position d'ancrage
-options.appearance.selectFramework.label=Système d'ancrage :
+options.docking.selectFramework.label=Système d'ancrage :
options.docking.autoSaveModeLayout.label=Enregistrer automatiquement la disposition d'ancrage spécifique au mode
options.docking.autoLoadModeLayout.label=Charger automatiquement la disposition d'ancrage spécifique au mode
options.docking.selectSet.label=Éléments ancrables :
@@ -1482,7 +1480,6 @@
options.save-back.confirmSaveAll=Demander confirmation pour « Enregistrer tous les tampons »
options.save-back.autosaveUntitled=Enregistrer automatiquement les tampons sans titre
options.save-back.suppressNotSavedConfirmUntitled=Ne jamais marquer les tampons sans titre comme étant modifiés mais non enregistrés.
-options.save-back.suppressNotSavedConfirmUntitled.tooltip=Si ceci est coché, cela signifie que les tampons sans titres seront supprimés quand un autre est créé (c'est une fonctionnalité !)
options.save-back.useMD5forDirtyCalculation=Ne jamais marquer les tampons comme étant modifiés mais pas enregistrés si le contenu n'a pas changé.
options.save-back.useMD5forDirtyCalculation.tooltip=Comparer la longueur et le MD5 hash du tampon à l'horaire de chargement pour décider si un tampon édité est modifié mais pas encore enregistré.
options.save-back.saveAsUsesFSB="Enregistrer sous" par défaut vers le dossier de l'explorateur de fichiers
@@ -1648,10 +1645,6 @@
options.view.fullScreenIncludesToolbar=Afficher les barres d'outils en mode plein écran
options.view.fullScreenIncludesStatus=Afficher la barre d'état en mode plein écran
options.bufferset.scope=Localisation du jeu de tampons :
-options.editpane.bufferset.contain=Les nouveaux jeux de tampons se composent :
-options.editpane.bufferset.newbufferset.copy=d'une copie du jeu de tampon courant
-options.editpane.bufferset.newbufferset.empty=d'un tampon vide
-options.editpane.bufferset.newbufferset.currentbuffer=du tampon courant uniquement
#}}}
@@ -1995,16 +1988,14 @@
install-plugins.info.releaseDate=Date de mise à disposition
install-plugins.info.version=Version
install-plugins.info.category=Catégorie
+install-plugins.info.author=Auteur
+install-plugins.info.released=Mis à disposition
install-plugins.totalSize={0} plugin(s), taille totale : {1}
install-plugins.select-all=Tout sélectionner
install-plugins.install=Installer
install-plugins.show-updates=Afficher les mises à jour
-install-plugins.info=Auteur : {0}\n\
- Mis à disposition : {1}\n\
- {2}
-
update-plugins.title=Mise à jour
plugin-manager.progress=Téléchargement de {0} à partir du miroir {1}
@@ -2284,12 +2275,7 @@
#{{{ Make Bug Report
macro.rs.MakeBugReport.OpeningActivityLog.error=Erreur lors de l'ouverture du journal d'activité.
macro.rs.MakeBugReport.UsefulEntriesForReport.label=Les entrées du journal d'activité qui peuvent être utiles dans un signalement de bogue :\n\n.
-macro.rs.MakeBugReport.MessagejEdit.label=[message] jEdit:
-macro.rs.MakeBugReport.NoticejEdit.label=[notice] jEdit:
-macro.rs.MakeBugReport.NoticeJarClassLoader.label=[notice] JARClassLoader:
-macro.rs.MakeBugReport.MessagejEditStartupComplete.label=[message] jEdit: Startup complete
-macro.rs.MakeBugReport.Error.label=[error]
-macro.rs.MakeBugReport.ReadingActivityLog.error=Erreur lors de la lecture du journal d'activité
+macro.rs.MakeBugReport.ReadingActivityLog.error=Erreur lors de la lecture du journal d'activité.
#}}}
#{{{ Run Script
@@ -2413,9 +2399,6 @@
Editing/Duplicate_Lines_Above.label=Dupliquer les lignes vers le haut
Editing/Duplicate_Lines_Below.label=Dupliquer les lignes vers le bas
-Editing/Emacs_Ctrl-K.label=Emacs Ctrl-K
-Editing/Emacs_Next_Line.label=Emacs ligne suivante
-Editing/Emacs_Previous_Line.label=Emacs ligne précédente
Editing/Go_to_Column.label=Atteindre la colonne
Editing/Greedy_Backspace.label=Suppression arrière gourmande
Editing/Greedy_Delete.label=Suppression gourmande
@@ -2436,7 +2419,6 @@
Files/Browse_Buffer_Directory.label=Explorer le dossier du tampon courant
Files/Browse_Directory.label=Ouvrir un dossier
Files/Buffer_Switcher.label=Sélecteur de fichier
-Files/Close_All_Except_Active.label=Fermer tous les autres
Files/Copy_Name_to_Clipboard.label=Copier le nom de fichier
Files/Copy_Path_to_Clipboard.label=Copier le chemin du fichier
Files/Delete_Current.label=Supprimer le fichier courant
@@ -2450,6 +2432,14 @@
Files/Toggle_ReadOnly.label=Modifier les permissions
#}}}
+#{{{ Emacs
+macros.folder.Emacs.label=Emacs
+
+Emacs/Emacs_Ctrl-K.label=Emacs Ctrl-K
+Emacs/Emacs_Next_Line.label=Emacs ligne suivante
+Emacs/Emacs_Previous_Line.label=Emacs ligne précédente
+#}}}
+
#{{{ Interface
macros.folder.Interface.label=Interface
diff -Nru jedit-5.4.0+dfsg/org/jedit/localization/jedit_ja.props jedit-5.5.0+dfsg/org/jedit/localization/jedit_ja.props
--- jedit-5.4.0+dfsg/org/jedit/localization/jedit_ja.props 2017-03-18 13:30:24.000000000 +0000
+++ jedit-5.5.0+dfsg/org/jedit/localization/jedit_ja.props 2018-04-08 23:58:42.000000000 +0000
@@ -52,7 +52,6 @@
action-set.plugin=プラグイン: {0}
macro-handler.beanshell.label=BeanShell スクリプト
-macro-handler.beanshell.glob=*.bsh
save-layout-failed.message=ドッキングレイアウトの保存に失敗しました。
load-layout.title=ドッキングレイアウトの読み込み
@@ -879,7 +878,7 @@
search.directoryField.mnemonic=Y
search.filterField=フィルタ(F):
search.filterField.mnemonic=F
-search.filterField.tooltip={*.c,*.h} で拡張子複数対応
+glob.tooltip={*.c,*.h} で拡張子複数対応
search.subdirs=サブディレクトリの検索(U)
search.subdirs.mnemonic=U
search.choose=選択(E)...
@@ -956,7 +955,7 @@
#{{{ Empty fileset error dialog
empty-fileset.title=空のファイルセット
-empty-fileset.message=指定された検索ファイルセットはファイルを含んでいません。
+empty-fileset.message=指定された検索ファイルセットはファイルを含んでいません。\n\
ファイル名フィルタと検索対象ディレクトリ(適用可能なら)を\n\
正しく設定してください。
#}}}
@@ -1205,7 +1204,7 @@
#{{{ Buffer options dialog
buffer-options.title=バッファ オプション
buffer-options.caption=このダイアログボックスは現在のバッファのみ設定を変更します。\n\
- 編集モードのデフォルト設定を変更するには、\n\n
+ 編集モードのデフォルト設定を変更するには、\n\
ユーティリティ->グローバル オプション->編集 ダイアログを参照してください。
buffer-options.loading-saving=読み込み/保存
buffer-options.lineSeparator=改行文字:
@@ -1481,7 +1480,6 @@
options.save-back.confirmSaveAll="すべて保存"コマンドは確認ダイアログを表示
options.save-back.autosaveUntitled=無題バッファを自動保存
options.save-back.suppressNotSavedConfirmUntitled=無題バッファはダーティーとしてマークしない。
-options.save-back.suppressNotSavedConfirmUntitled.tooltip=これをチェックすると新規バッファが作られるとき常に無題バッファが排除されることになります。(これは仕様です!)
options.save-back.useMD5forDirtyCalculation=内容が変わっていなければダーティーとしてマークしない。
options.save-back.useMD5forDirtyCalculation.tooltip=読み込み時のバッファの長さとMD5ハッシュで比較し、バッファがダーティーかどうか判別。
options.save-back.saveAsUsesFSB="名前を付けて保存" のデフォルトはファイルシステムブラウザのディレクトリ
@@ -1525,7 +1523,7 @@
grab-key.duplicate-alt-shortcut.title=重複ショートカット
grab-key.duplicate-alt-shortcut.message=\
- 選択されたショートカットはこの項目の別のショートカットと\n\n
+ 選択されたショートカットはこの項目の別のショートカットと\n\
重複します。他のものを選択してください。
grab-key.duplicate-shortcut.title=重複ショートカット
@@ -1577,8 +1575,8 @@
options.textarea.label=テキストエリア
options.textarea.font=テキストフォント:
options.textarea.fontSubst=フォント置換用の追加フォント
-options.textarea.fontsubst.tooltip=選ばれた文字を表示できない場合、自動的に適切なフォントを選択します。
-options.textarea.fontsubstlist=フォント置換: 推奨フォント:
+options.textarea.fontSubst.tooltip=選ばれた文字を表示できない場合、自動的に適切なフォントを選択します。
+options.textarea.fontSubstList=フォント置換: 推奨フォント:
options.textarea.fontSubstSystemFonts=Font substitution: Search all system fonts
options.textarea.fontSubstWarning.label=Font substitution
options.textarea.fontSubstWarning=Without system fonts you will need preferred fonts.
@@ -1992,16 +1990,14 @@
install-plugins.info.releaseDate=リリース日
install-plugins.info.version=バージョン
install-plugins.info.category=カテゴリ
+install-plugins.info.author=作者
+install-plugins.info.released=リリース日
install-plugins.totalSize=プラグイン数 {0} / 合計サイズ: {1}
install-plugins.select-all=すべて選択
install-plugins.install=インストール
install-plugins.show-updates=アップデートの表示
-install-plugins.info=作者 : {0}\n\
- リリース日 : {1}\n\
- {2}
-
update-plugins.title=アップデート
plugin-manager.progress=ダウンロード中 {0} ミラー {1} から
@@ -2272,8 +2268,6 @@
macro.rs.DisplayShortcuts.Close.label=閉じる
macro.rs.DisplayShortcuts.WriteToBuffer.label=バッファに書き出し
macro.rs.DisplayShortcuts.ShortcutList.label=キーボードショートカット リスト
-macro.rs.DisplayShortcuts.Center.label=Center
-macro.rs.DisplayShortcuts.South.label=South
#}}}
#{{{ Hex Convert
@@ -2286,11 +2280,6 @@
#{{{ Make Bug Report
macro.rs.MakeBugReport.OpeningActivityLog.error=アクティビティログを開くときエラーが発生しました。
macro.rs.MakeBugReport.UsefulEntriesForReport.label=Activity log entries that might be useful in a bug report:\n\n.
-macro.rs.MakeBugReport.MessagejEdit.label=[message] jEdit:
-macro.rs.MakeBugReport.NoticejEdit.label=[notice] jEdit:
-macro.rs.MakeBugReport.NoticeJarClassLoader.label=[notice] JARClassLoader:
-macro.rs.MakeBugReport.MessagejEditStartupComplete.label=[message] jEdit: Startup complete
-macro.rs.MakeBugReport.Error.label=[error]
macro.rs.MakeBugReport.ReadingActivityLog.error=アクティビティログ読み取りエラー
#}}}
@@ -2415,9 +2404,6 @@
Editing/Duplicate_Lines_Above.label=上の行を複製
Editing/Duplicate_Lines_Below.label=下の行を複製
-Editing/Emacs_Ctrl-K.label=Emacs の Ctrl-K
-Editing/Emacs_Next_Line.label=Emacs の次行
-Editing/Emacs_Previous_Line.label=Emacs の前行
Editing/Go_to_Column.label=列に移動
Editing/Greedy_Backspace.label=貪欲なバックスペース
Editing/Greedy_Delete.label=貪欲なデリート
@@ -2438,7 +2424,6 @@
Files/Browse_Buffer_Directory.label=バッファのディレクトリをブラウズ
Files/Browse_Directory.label=ディレクトリをブラウズ
Files/Buffer_Switcher.label=バッファスイッチャ
-Files/Close_All_Except_Active.label=アクティブ以外をすべて閉じる
Files/Copy_Name_to_Clipboard.label=クリップボードに名前をコピー
Files/Copy_Path_to_Clipboard.label=クリップボードにパスをコピー
Files/Delete_Current.label=現在のファイルを削除
@@ -2452,6 +2437,14 @@
Files/Toggle_ReadOnly.label=読み込み専用の切り替え
#}}}
+#{{{ Emacs
+macros.folder.Emacs.label=Emacs
+
+Emacs/Emacs_Ctrl-K.label=Emacs の Ctrl-K
+Emacs/Emacs_Next_Line.label=Emacs の次行
+Emacs/Emacs_Previous_Line.label=Emacs の前行
+#}}}
+
#{{{ Interface
macros.folder.Interface.label=インターフェース
diff -Nru jedit-5.4.0+dfsg/org/jedit/localization/jedit_ko.props jedit-5.5.0+dfsg/org/jedit/localization/jedit_ko.props
--- jedit-5.4.0+dfsg/org/jedit/localization/jedit_ko.props 2017-03-18 13:30:24.000000000 +0000
+++ jedit-5.5.0+dfsg/org/jedit/localization/jedit_ko.props 2018-04-08 23:58:42.000000000 +0000
@@ -53,7 +53,6 @@
action-set.plugin=플러그인: {0}
macro-handler.beanshell.label=BeanShell 스크립트
-macro-handler.beanshell.glob=*.bsh
save-layout-failed.message=도킹 레이아웃 저장 실패.
load-layout.title=도킹 레이아웃 로드
@@ -1892,7 +1891,7 @@
plugin-manager.remove-confirm.message=다음의 플러그인을 삭제하시겠습니까?
plugin-manager.dependency.title=플러그인 의존성
-lugin-manager.dependency.message={0}를 다음과 같은 플러그인에서 필요로 합니다.\n\
+plugin-manager.dependency.message={0}를 다음과 같은 플러그인에서 필요로 합니다.\n\
{0}를 해제하시면 아래의 플러그인도 해제합니다:
plugin-manager.remove-dependencies.title=플러그인 의존성
@@ -1961,7 +1960,6 @@
install-plugins.info.author=저자
install-plugins.info.released=릴리즈 일자
install-plugins.info.depends=의존성
-install-plugins.info.optionalDepends=옵션 의존성
install-plugins.totalSize={0} 플러그인, 총크기: {1}
install-plugins.select-all=모두 선택
@@ -2240,8 +2238,6 @@
macro.rs.DisplayShortcuts.Close.label=닫기
macro.rs.DisplayShortcuts.WriteToBuffer.label=버퍼로 내보내기
macro.rs.DisplayShortcuts.ShortcutList.label=키보드 단축키 목록
-macro.rs.DisplayShortcuts.Center.label=가운데
-macro.rs.DisplayShortcuts.South.label=아래
#}}}
#{{{ Hex Convert
@@ -2254,11 +2250,6 @@
#{{{ Make Bug Report
macro.rs.MakeBugReport.OpeningActivityLog.error=작업 로그 열기 오류.
macro.rs.MakeBugReport.UsefulEntriesForReport.label=버그 리포트에 유용한 작업 로그 항목:\n\n.
-macro.rs.MakeBugReport.MessagejEdit.label=[메시지] jEdit:
-macro.rs.MakeBugReport.NoticejEdit.label=[주의] jEdit:
-macro.rs.MakeBugReport.NoticeJarClassLoader.label=[주의] JARClassLoader:
-macro.rs.MakeBugReport.MessagejEditStartupComplete.label=[메시지] jEdit: 시작 완료
-macro.rs.MakeBugReport.Error.label=[에러]
macro.rs.MakeBugReport.ReadingActivityLog.error=작업 로그 읽기 오류
#}}}
@@ -2417,7 +2408,7 @@
Emacs/Emacs_Open_Line.label=Emacs Open Line
Emacs/Emacs_Previous_Line.label=Emacs Previous Line
Emacs/Emacs_Set_Mark.label=Emacs Set Mark
-Emacs/Emacs_Set_Wrap=Emacs Set Wrap
+Emacs/Emacs_Set_Wrap.label=Emacs Set Wrap
Emacs/Emacs_Transpose_Chars.label=Emacs Transpose Chars
Emacs/Emacs_Transpose_Lines.label=Emacs Transpose Lines
Emacs/Emacs_Upcase_Word.label=Emacs Upcase Word
@@ -2429,7 +2420,6 @@
Files/Browse_Buffer_Directory.label=버퍼 디렉토리 보기
Files/Browse_Directory.label=디렉토리 보기
Files/Buffer_Switcher.label=버퍼 전환기
-Files/Close_All_Except_Active.label=작업중인것 제외하고 모두 닫기
Files/Copy_Name_to_Clipboard.label=이름을 클립보드에 복사
Files/Copy_Path_to_Clipboard.label=경로를 클립보드에 복사
Files/Delete_Current.label=현재 파일 삭제
diff -Nru jedit-5.4.0+dfsg/org/jedit/localization/jedit_ru.props jedit-5.5.0+dfsg/org/jedit/localization/jedit_ru.props
--- jedit-5.4.0+dfsg/org/jedit/localization/jedit_ru.props 2017-03-18 13:30:24.000000000 +0000
+++ jedit-5.5.0+dfsg/org/jedit/localization/jedit_ru.props 2018-04-08 23:58:42.000000000 +0000
@@ -34,9 +34,11 @@
common.removeCurrent=Удалить выбор
common.moveUp=Вверх
common.moveDown=Вниз
-common.clearAll=Очистить Всё
-common.selectAll=Выделить Всё
-common.selectNone=Отменить ВЫделение
+common.clearAll=Очистить всё
+common.selectAll=Выделить всё
+common.selectNone=Отменить выделение
+common.loading=Загрузка...
+common.reset=Сброс
lineSep.unix=Unix (\\n)
lineSep.windows=DOS/Windows (\\r\\n)
@@ -46,13 +48,12 @@
#{{{ Miscellaneous
history.caption=Ранее введённые строки:
-action-set.jEdit=Встроеные Комманды
+action-set.jEdit=Встроенные Команды
action-set.browser=Обозреватель Файловой Системы
-action-set.macros=Макро комманды
-action-set.plugin=Модуль: {0}
+action-set.macros=Макросы
+action-set.plugin=Плагин: {0}
macro-handler.beanshell.label=Программа BeanShell
-macro-handler.beanshell.glob=*.bsh
save-layout-failed.message=Не удалось сохранить раскладку дока.
load-layout.title=Загрузить Раскладку Дока
@@ -67,11 +68,11 @@
view.action.prompt=Действие:
view.action.no-completions=Не найдено заданных действий
-view.action.close-tooltip=Спрятать панел действий (ESCAPE)
+view.action.close-tooltip=Спрятать панель действий (ESCAPE)
#}}}
#{{{ Context menu
-view.context.customize=Персонализировать Меню...
+view.context.customize=Настроить это меню...
#}}}
#{{{ System tray menu
@@ -90,26 +91,27 @@
new-file-in-mode.dialog.message=Режим Редактирования:
open-file.label=Открыть...($O)
reload.label=Перезагрузить($R)
-reload-all.label=Перезагрузить Все($d)
+reload-all.label=Перезагрузить все($d)
close-buffer.label=Закрыть($C)
-close-buffer.tooltip=Закрыть буффер только в наборе EditPane
+close-buffer.tooltip=Закрыть буфер только в наборе EditPane
global-close-buffer.label=Закрыть (глобально)
-global-close-buffer.tooltip=Закрыть буффер во всех видах
+global-close-buffer.tooltip=Закрыть буфер во всех видах
closeall-except-active.tooltip=Закрыть остальные в наборе EditPane
closeall-except-active.label=Закрыть остальные($O)
-closeall-bufferset.label=Закрыть Все($e)
+closeall-bufferset.label=Закрыть все($e)
closeall-bufferset.tooltip=Очистить набор Editpane
bufferset-toggle-exclusive.label=Включить исключительный набор($x)
-bufferset-toggle-exclusive.tooltip=Когда буффер открыт, закрыть его в других непересекающихся наборах
-close-all.label=Закрыть Все (Глобально)
-close-all.tooltip=Закрыть все буфферы во всех видах
+bufferset-toggle-exclusive.tooltip=Когда буфер открыт, закрыть его в других непересекающихся наборах
+close-all.label=Закрыть все (Глобально)
+close-all.tooltip=Закрыть все буферы во всех видах
save.label=Сохранить($S)
save-as.label=Сохранить как...($a)
save-a-copy-as.label=Сохранить копию как...($y)
save-a-copy-as.tooltip=Не изменять путь к текущему буферу
-save-all.label=Сохранить Все...($l)
-print.label=Печатать...($P)
-page-setup.label=Свойства Страницы...($g)
+save-all.label=Сохранить все...($l)
+print.label=Печать...($P)
+print-preview.label=Предпросмотр печати...($v)
+page-setup.label=Свойства страницы...($g)
# Print selection not yet implemented
#print-selection.label=Prin$t Selection...
exit.label=Выход($x)
@@ -118,30 +120,30 @@
recent-files.label=Последние Файлы($F)
recent-files.textfield.tooltip=Здесь может быть фильтр из префикса или шаблон
no-recent-files.label=Нет недавних файлов
-clear-recent-files.label=Очистить Список Файлов
+clear-recent-files.label=Очистить список Файлов
#}}}
-reload-encoding.label=Перезагрузить с новой кодировкой($E)
+reload-encoding.label=Перезагрузить в кодировке($E)
reload-encoding.error=Нет кодировки {0}
#}}}
#{{{ Edit menu
-edit.label=Менять($E)
+edit.label=Правка($E)
undo.label=Отменить($U)
-redo.label=Переприменить($R)
+redo.label=Вернуть($R)
cut.label=Вырезать($C)
copy.label=Копировать($o)
paste.label=Вставить($P)
-select-all.label=Выделить Все($A)
-word-count.label=Счётчик Слов...($W)
-complete-word.label=Закончить слово($m)
-expand-abbrev.label=Раскрыть сокращение($x)
+select-all.label=Выделить все($A)
+word-count.label=Счётчик слов...($W)
+complete-word.label=Завершить слово($m)
+expand-abbrev.label=Развернуть сокращение($x)
goto-line.label=Перейти к строке...($G)
#{{{ More Clipboard menu
-clipboard.label=Вставка (ещё)($b)
+clipboard.label=ещё вставка($b)
cut-append.label=Вырезать с добавлением($C)
copy-append.label=Копировать с добавлением($o)
vertical-paste.label=Вертикальная вставка($V)
@@ -159,7 +161,7 @@
#}}}
#{{{ More Selection menu
-selection.label=Выделение (ещё)($S)
+selection.label=ещё выделение($S)
select-none.label=Убрать выделение($N)
select-word.label=Выделить слово($W)
select-line.label=Выделить строку($L)
@@ -178,8 +180,8 @@
join-lines.label=Соединить строки($J)
delete-paragraph.label=Удалить абзац($P)
format-paragraph.label=Форматировать абзац($F)
-to-lower.label=В маленькие буквы($L)
-to-upper.label=В большие буквы($U)
+to-lower.label=В нижний регистр($L)
+to-upper.label=В верхний регистр($U)
#}}}
#{{{ Indent menu
@@ -187,15 +189,15 @@
indent-lines.label=Отступ в строках($I)
shift-left.label=Сдвинуть влево($L)
shift-right.label=Сдвинуть вправо($R)
-remove-trailing-ws.label=Удалить пробелы на конце
+remove-trailing-ws.label=Удалить пробелы в конце
spaces-to-tabs.label=Пробелы в табуляцию($S)
tabs-to-spaces.label=Табуляцию в пробелы($T)
#}}}
#{{{ Source menu
source.label=Исходный код($S)
-range-comment.label=Поточный коментарий($R)
-line-comment.label=Построчный коментарий($L)
+range-comment.label=Блочный комментарий($R)
+line-comment.label=Однострочный комментарий($L)
select-block.label=Выбрать блок кода($S)
match-bracket.label=Перейти к связанной скобке($M)
prev-bracket.label=Перейти к предыдущей скобке($P)
@@ -209,32 +211,32 @@
find.label=Найти...($F)
find-next.label=Найти следующее($n)
find-prev.label=Найти предыдущее($v)
-search-in-open-buffers.label=Поиск в открутых буферах...($B)
-search-in-directory.label=Поиск в директории...($D)
+search-in-open-buffers.label=Искать в открытых буферах...($B)
+search-in-directory.label=Искать в каталоге...($D)
replace-in-selection.label=Замена в выделении($R)
replace-and-find-next.label=Заменить и продолжить поиск($p)
replace-all.label=Заменить все($A)
-quick-search.label=Панель постепенного поиска($I)
-hypersearch.label=Панель глобального поиска($H)
-quick-search-word.label=Постепенный поиск слова($n)
-hypersearch-word.label=Глобальный поиск слова($y)
-whole-word.label=Целое слово($W)
-ignore-case.label=Игнороровать размер букв($C)
-regexp.label=Регулярные выражения($x)
-hypersearch-results.label=Глобальные результаты
+quick-search.label=Панель быстрого поиска($I)
+hypersearch.label=Панель гипер-поиска($H)
+quick-search-word.label=Быстрый поиск слова($n)
+hypersearch-word.label=Гипер-поиск слова($y)
+whole-word.label=Целые слова($W)
+ignore-case.label=Игнорировать регистр($C)
+regexp.label=Регулярное выражение($x)
+hypersearch-results.label=Результаты гипер-поиска
#}}}
#{{{ Markers menu
-markers.label=закладки($M)
-add-marker.label=Добавить/удалить закладку($A)
-add-marker-shortcut.label=Добавить закладку с сокращением($W)
-remove-all-markers.label=Удалить все закладки($m)
-goto-marker.label=Перейти к закладке($G)
-select-marker.label=Выделить до закладки($S)
-swap-marker.label=Обменять каретку с закладкой($p)
-prev-marker.label=Перейти к предыдущей закладке($P)
-next-marker.label=Перейти к следующей закладке($N)
-no-markers.label=Нет закладок
+markers.label=Метки($M)
+add-marker.label=Добавить/удалить метку($A)
+add-marker-shortcut.label=Добавить метку с сокращением($W)
+remove-all-markers.label=Удалить все метки($m)
+goto-marker.label=Перейти к метке($G)
+select-marker.label=Выделить до метки($S)
+swap-marker.label=Обменять курсор с меткой($p)
+prev-marker.label=Перейти к предыдущей метке($P)
+next-marker.label=Перейти к следующей метке($N)
+no-markers.label=Нет меток
markers.blank-line=[Пустая строка]
#}}}
@@ -262,8 +264,8 @@
new-plain-view.label=Новый простой вид($w)
new-plain-view.tooltip=Новое главное окно без дока и некоторых панелей
close-view.label=Закрыть вид($C)
-close-view.tooltip=Закрыть главное окно, и завершить работу, если оно единстевенное
-prev-buffer.label=Перейти к предыдущему боферу($P)
+close-view.tooltip=Закрыть главное окно и завершить работу, если оно единстевенное
+prev-buffer.label=Перейти к предыдущему буферу($P)
next-buffer.label=Перейти к следующему буферу($N)
recent-buffer.label=Перейти к последнему буферу($R)
toggle-buffer-switcher.label=Переключатель буферов($B)
@@ -272,15 +274,15 @@
toggle-statusbar.label=Строка состояния($t)
toggle-gutter.label=Кант($G)
show-context-menu.label=Контекстное меню
-set-view-title.label=Ввести имя виду...
-set-view-title.tooltip=Ввести имя для окна для отличия от других окон.
+set-view-title.label=Задать заголовок окна...
+set-view-title.tooltip=Задать заголовок для окна для отличия от других окон.
toggle-full-screen.label=Полный экран($f)
#{{{ Scrolling menu
scrolling.label=Прокрутка($g)
scroll-to-current-line.label=Прокрутить к текущй строке($t)
-scroll-and-center.label=Прокрутить и центрировать каретку($S)
-center-caret.label=Каректу в центр экрана($C)
+scroll-and-center.label=Прокрутить и центрировать курсор($S)
+center-caret.label=Курсор в центр экрана($C)
scroll-up-line.label=Прокрутить на строку вверх($U)
scroll-down-line.label=Прокрутить на строку вниз($D)
scroll-up-page.label=Прокрутить на страницу вверх($p)
@@ -315,18 +317,18 @@
bottom-docking-area.label=К нижней области дока($B)
focus-textarea.label=К тексту
close-docking-area.label=Закрыть текущую область дока($C)
-layout-load.label=Загрузить раскладку дока ...($L)
-layout-save.label=Сохранить раскладку дока ...($S)
-layout-load-current-mode.label=Загрузить раскладку дока для текущего режима
-layout-save-current-mode.label=Сохранить раскладку дока для текущего режима
+layout-load.label=Загрузить схему дока ...($L)
+layout-save.label=Сохранить схему дока ...($S)
+layout-load-current-mode.label=Загрузить схему дока для текущего режима
+layout-save-current-mode.label=Сохранить схему дока для текущего режима
#}}}
#}}}
#{{{ Utilities menu
-utils.label=Услуги($U)
-vfs.browser.label=Инспектор файлов($F)
+utils.label=Сервис($U)
+vfs.browser.label=Обозреватель файлов($F)
action-bar.label=Панель действий($A)
last-action.label=Повторить последнее действие($p)
buffer-options.label=Настройки буфера...($B)
@@ -334,42 +336,42 @@
combined-options.label=Настройки...($O)
#{{{ Recent Directories menu
-recent-directories.label=Последние директории($R)
-no-recent-dirs.label=Нет директорий в списке
+recent-directories.label=Последние каталоги($R)
+no-recent-dirs.label=Нет каталогов в списке
#}}}
#{{{ Favorites menu
-favorites.label=Избранные($v)
-add-buffer-to-favorites.label=Добавить буфер в избранные
-add-dir-to-favorites.label=Добавить директорию в избранные
+favorites.label=Избранное($v)
+add-buffer-to-favorites.label=Добавить буфер в избранное
+add-dir-to-favorites.label=Добавить каталог в избранное
edit-favorites.label=Настроить избранное
#}}}
#{{{ Current Directory menu
-current-directory.label=Текущая директория($C)
+current-directory.label=Текущий каталог($C)
#}}}
#{{{ jEdit Home Directory menu
-jedit-directory.label=Директория $jEdit
+jedit-directory.label=Каталог $jEdit
#}}}
#{{{ Settings Directory menu
-settings-directory.label=Директория настроек($S)
+settings-directory.label=Каталог настроек($S)
#}}}
#{{{ BeanShell menu
beanshell.label=B$eanShell
eval.label=Выполнить BeanShell...($E)
eval-for-selected-lines.label=Выполнить для выделенных строк...($F)
-eval-selection.label=Выполнить выделение($S)
+eval-selection.label=Выполнить выделенное($S)
#}}}
#{{{ Troubleshooting menu
troubleshooting.label=Отладка($T)
-log-viewer.label=Записи активности($A)
-update-log.label=Обновить записи активности на диске($U)
+log-viewer.label=Журнал активности($A)
+update-log.label=Обновить журнал активности на диске($U)
io-progress-monitor.label=Прогресс ввода/вывода($I)
-task-monitor.label=Инспектор активности($T)
+task-monitor.label=Монитор заданий($T)
keyboard-tester.label=Проверка клавиш...($K)
memory-status.label=Состояние памяти...($M)
reload-modes.label=Перезагрузить режимы редактирования($R)
@@ -377,29 +379,29 @@
#{{{ Quick options menu
quick-options.label=Быстрые настройки($Q)
-edit-syntax-style.label=Редактировать стил синтаксиса для токена под кареткой
+edit-syntax-style.label=Редактировать стиль синтаксиса для токена под курсором
#}}}
#}}}
#{{{ Macros menu
-macros.label=Макро-команда($c)
-new-macro.label=Новая
+macros.label=Макросы($c)
+new-macro.label=Новый
record-macro.label=Записать...($R)
stop-recording.label=Закончить запись($S)
-last-macro.label=Повторить последнюю
-record-temp-macro.label=Записать временную($T)
-run-temp-macro.label=Выполнить временную($p)
-run-other-macro.label=Выполнить другую...($O)
+last-macro.label=Повторить последний
+record-temp-macro.label=Записать временный($T)
+run-temp-macro.label=Выполнить временный($p)
+run-other-macro.label=Выполнить другой...($O)
rescan-macros.label=Пересканировать($n)
-no-macros.label=Нет макро команд
+no-macros.label=Нет макросов
#}}}
#{{{ Plugins menu
-plugins.label=Модули($P)
-plugin-manager.label=Управление модулями...($M)
-plugin-options.label=Настройки модулей...($O)
-no-plugins.label=Модулей не установлено
+plugins.label=Плагины($P)
+plugin-manager.label=Менеджер плагинов...($M)
+plugin-options.label=Настройки плагинов...($O)
+no-plugins.label=Плагины не установлены
#}}}
#{{{ Help menu
@@ -468,7 +470,7 @@
select-end.label=Выделить до последнего символа строки
select-home.label=Выделить до первого символа строки
select-line-end.label=Выделить до конца строки
-select-line-home.label=Выделит до начала строки
+select-line-home.label=Выделить до начала строки
select-next-char.label=Выделить следующий символ
select-next-line.label=Выделить следующую строку
select-next-page.label=Выделить следующую страницу
@@ -507,58 +509,58 @@
view.docking.menu-left=В левый док
view.docking.menu-bottom=В нижний док
view.docking.menu-right=В правый док
-view.docking.menu-clone=Новое плавающее оконце
+view.docking.menu-clone=Новое плавающее окно
view.docking.menu-close=Закрыть
view.docking.menu-undock=Вынуть из дока
view.docking.toggle.label={0} (Переключить)
-view.docking.float.label={0} (Новое плавающее оконце)
+view.docking.float.label={0} (Новое плавающее окно)
-directory.not-local=Невозможен доступ к директориям на удалённой фаиловой системе
+directory.not-local=Невозможен доступ к каталогам на удалённой фаиловой системе
directory.no-files=Нет файлов
#{{{ Gutter highlight
-view.gutter.marker.no-name=Закладка
-view.gutter.marker=Закладка: {0}
+view.gutter.marker.no-name=Метка
+view.gutter.marker=Метка: {0}
#}}}
#{{{ Status messages
-view.status.add-marker=Клавиша для новой закладки? [{0}]
+view.status.add-marker=Клавиша для новой метки? [{0}]
view.status.auto-wrap=Строка не найдена: поиск перескочил на противоположную границу!
view.status.bracket=Подходит к строке {0}: {1}
-view.status.caret-tooltip=Смещение, номера строки и колонки (Относительные смещение, номера строки и колонки [-виртуалн])
+view.status.caret-tooltip=Смещение, номер строки и колонки (Относительные смещение, номер строки и колонки [-виртуалн])
view.status.copy-append-string-register=В какой регистр добавить? [{0}]
view.status.copy-string-register=В какой регистр копировать? [{0}]
view.status.cut-append-string-register=В какой регистр добавить вырезанное? [{0}]
view.status.cut-string-register=В каой регистр поместить вырезанное? [{0}]
view.status.expand-folds=Уровень свертки? [1-9]
-view.status.goto-marker=К какой закладке перейти? [{0}]
+view.status.goto-marker=К какой метке перейти? [{0}]
view.status.incomplete-abbrev=Задано параметров - {0} , требуется - {1} !
-view.status.insert-literal=Нажмите клавишу для непсредственной вставки?
+view.status.insert-literal=Нажмите клавишу для непосредственной вставки?
view.status.io-1=Ввод/вывод: 1 операция активна
view.status.io.done=Ввод/вывод закончен
view.status.io=Ввод/вывод: активно {0} операций
view.status.linesep-changed=Символ конца строки теперь {0}
view.status.linesep-tooltip=Символ конца строки (щелчок для смены)
view.status.memory-tooltip=Память доступная Java: {0}Kb/{1}Kb
-view.status.mode-tooltip=Текущие режим редактирования и свертки, кодировка
-view.status.multi-changed=Режим можественного выделения {0,choice,0#выключен|1#включён}
-view.status.multi-tooltip=Режим можественного выделения (щелчок для смены)
+view.status.mode-tooltip=Текущий режим редактирования и свертки, кодировка
+view.status.multi-changed=Режим множественного выделения {0,choice,0#выключен|1#включён}
+view.status.multi-tooltip=Режим множественного выделения (щелчок для смены)
view.status.narrow=Выполнено "Развернуть все", весь текст видим
-view.status.no-markers=нет закладок
+view.status.no-markers=нет меток
view.status.no-registers=регистры не заданы
view.status.overwrite-changed=Режим перезаписи {0,choice,0#выключен|1#включён}
-view.status.overwrite-tooltip=Индикатор режимавставки/перезаписи (щелчок для смены)
+view.status.overwrite-tooltip=Индикатор режима вставки/перезаписи (щелчок для смены)
view.status.paste-string-register=Из какого регистра вставить? [{0}]
view.status.print=Печать страницы {0}
view.status.quick-copy=Режим быстрого копирования
-view.status.recording=Запись макро-команды
+view.status.recording=Запись макроса
view.status.rect-select-changed=Прямоугольное выделение {0,choice,0#выключено|1#включено}
view.status.rect-tooltip=Режим прямоугольного выделения (щелчок для смены)
view.status.replace-all=Замен: {0}, изменённых файлов: {1}
view.status.search-not-found=Строка не найдена!
-view.status.select-marker=До какой закладки выделить? [{0}]
-view.status.swap-marker=С какой закладкой обменять каректу? \
+view.status.select-marker=До какой метки выделить? [{0}]
+view.status.swap-marker=С какой меткой обменять курсор? \
[{0}]
view.status.vertical-paste-string-register=Из какого регистра вставить? [{0}]
view.status.wrap-changed=Режим переноса по словам сейчас "{0}"
@@ -566,9 +568,11 @@
view.status.indent-tooltip=Режим автоматического отступа (щелчок для смены)
view.status.autoindent-changed=Режим автоматического отступа сейчас "{0}"
view.status.bufferset-tooltip=Набор буферов включает в себя {0}
+view.status.locked-changed=Буфер {0,choice,0#разблокирован|1#заблокирован}
+view.status.locked-tooltip=Буфер {0,choice,0#разблокирован|1#заблокирован} (щелчок для смены)
wrap.none=выключен
-wrap.hard=постоянный
-wrap.soft=временный
+wrap.hard=жёсткий
+wrap.soft=мягкий
#}}}
#{{{ Status bar component visibility
@@ -583,15 +587,182 @@
print.footerText={0} :: страница {1}
print-error.title=Ошибка печати
-print-error.message=При попытке печати произошла ошибка:\n\
- {0}
+print-error.message=При попытке печати произошла ошибка:\n{0}
+
+print.dialog.title=Print
+print.dialog.pageSetupTitle=Page Setup
+print.dialog.Advanced=Advanced
+print.dialog.All_pages=All pages
+print.dialog.All_sheets=All sheets
+print.dialog.At=At
+print.dialog.Automatic-Feeder=Automatic Feeder
+print.dialog.Bottom=Bottom
+print.dialog.Cassette=Cassette
+print.dialog.Collate=Collate
+print.dialog.Color=Color
+print.dialog.Copies=Copies
+print.dialog.Current_page=Current page
+print.dialog.Draft=Draft
+print.dialog.Even_sheets=Even sheets
+print.dialog.Finishing=Finishing
+print.dialog.Form-Source=Form Source
+print.dialog.General=General
+print.dialog.High=High
+print.dialog.Ink=Ink
+print.dialog.Job=Job
+print.dialog.Job_Details=Job Details
+print.dialog.Large-Format=Large Format
+print.dialog.Layout=Layout
+print.dialog.Left=Left
+print.dialog.Low=Low
+print.dialog.Manual-Envelope=Manual Envelope
+print.dialog.Margins=Margins
+print.dialog.Medium=Medium
+print.dialog.Monochrome=Monochrome
+print.dialog.Normal=Normal
+print.dialog.Now=Now
+print.dialog.Odd_sheets=Odd sheets
+print.dialog.On_Hold=On Hold
+print.dialog.Only_print=Only print
+print.dialog.Orientation=Orientation
+print.dialog.Output_tray=Output tray
+print.dialog.Page_Setup=Page Setup
+print.dialog.Page_ordering=Page ordering
+print.dialog.Pages=Pages
+print.dialog.Pages_per_side=Pages per side
+print.dialog.Paper=Paper
+print.dialog.Paper_size=Paper size
+print.dialog.Paper_source=Paper source
+print.dialog.Print_Document=Print Document
+print.dialog.Priority=Priority
+print.dialog.Quality=Quality
+print.dialog.Range=Range
+print.dialog.Reverse=Reverse
+print.dialog.Right=Right
+print.dialog.Selection=Selection
+print.dialog.Small-Format=Small Format
+print.dialog.Top=Top
+print.dialog.Tractor-Feeder=Tractor Feeder
+print.dialog.Two-sided=Two-sided
+print.dialog.Urgent=Urgent
+print.dialog.a=Engineering A
+print.dialog.accepting-jobs=Accepting jobs
+print.dialog.auto-select=Automatically Select
+print.dialog.b=Engineering B
+print.dialog.c=Engineering C
+print.dialog.d=Engineering D
+print.dialog.e=Engineering E
+print.dialog.envelope=Envelope
+print.dialog.executive=Executive
+print.dialog.folio=Folio
+print.dialog.invite-envelope=Invitation Envelope
+print.dialog.invoice=Invoice
+print.dialog.iso-2a0=2A0 (ISO/DIN & JIS)
+print.dialog.iso-4a0=4A0 (ISO/DIN & JIS)
+print.dialog.iso-a0=A0 (ISO/DIN & JIS)
+print.dialog.iso-a1=A1 (ISO/DIN & JIS)
+print.dialog.iso-a2=A2 (ISO/DIN & JIS)
+print.dialog.iso-a3=A3 (ISO/DIN & JIS)
+print.dialog.iso-a4=A4 (ISO/DIN & JIS)
+print.dialog.iso-a5=A5 (ISO/DIN & JIS)
+print.dialog.iso-a6=A6 (ISO/DIN & JIS)
+print.dialog.iso-a7=A7 (ISO/DIN & JIS)
+print.dialog.iso-a8=A8 (ISO/DIN & JIS)
+print.dialog.iso-a9=A9 (ISO/DIN & JIS)
+print.dialog.iso-a10=A10 (ISO/DIN & JIS)
+print.dialog.iso-b0=B0 (ISO/DIN)
+print.dialog.iso-b1=B1 (ISO/DIN)
+print.dialog.iso-b2=B2 (ISO/DIN)
+print.dialog.iso-b3=B3 (ISO/DIN)
+print.dialog.iso-b4=B4 (ISO/DIN)
+print.dialog.iso-b5=B5 (ISO/DIN)
+print.dialog.iso-b6=B6 (ISO/DIN)
+print.dialog.iso-b7=B7 (ISO/DIN)
+print.dialog.iso-b8=B8 (ISO/DIN)
+print.dialog.iso-b9=B9 (ISO/DIN)
+print.dialog.iso-b10=B10 (ISO/DIN)
+print.dialog.iso-c0=C0 (ISO/DIN)
+print.dialog.iso-c1=C1 (ISO/DIN)
+print.dialog.iso-c2=C2 (ISO/DIN)
+print.dialog.iso-c3=C3 (ISO/DIN)
+print.dialog.iso-c4=C4 (ISO/DIN)
+print.dialog.iso-c5=C5 (ISO/DIN)
+print.dialog.iso-c6=C6 (ISO/DIN)
+print.dialog.iso-c7=C7 (ISO/DIN)
+print.dialog.iso-c8=C8 (ISO/DIN)
+print.dialog.iso-c9=C9 (ISO/DIN)
+print.dialog.iso-c10=C10 (ISO/DIN)
+print.dialog.iso-designated-long=ISO Designated Long
+print.dialog.italian-envelope=Italy Envelope
+print.dialog.italy-envelope=Italy Envelope
+print.dialog.japanese-postcard=Postcard (JIS)
+print.dialog.jis-b0=B0 (JIS)
+print.dialog.jis-b1=B1 (JIS)
+print.dialog.jis-b2=B2 (JIS)
+print.dialog.jis-b3=B3 (JIS)
+print.dialog.jis-b4=B4 (JIS)
+print.dialog.jis-b5=B5 (JIS)
+print.dialog.jis-b6=B6 (JIS)
+print.dialog.jis-b7=B7 (JIS)
+print.dialog.jis-b8=B8 (JIS)
+print.dialog.jis-b9=B9 (JIS)
+print.dialog.jis-b10=B10 (JIS)
+print.dialog.landscape=Landscape
+print.dialog.main=Main
+print.dialog.manual=Manual
+print.dialog.middle=Middle
+print.dialog.monarch-envelope=Monarch Envelope
+print.dialog.na-5x7=5\" x 7\" Paper
+print.dialog.na-6x9-envelope=6x9 Envelope
+print.dialog.na-7x9-envelope=6x7 Envelope
+print.dialog.na-8x10=8\" x 10\" Paper
+print.dialog.na-9x11-envelope=9x11 Envelope
+print.dialog.na-9x12-envelope=9x12 Envelope
+print.dialog.na-10x13-envelope=10x13 Envelope
+print.dialog.na-10x14-envelope=10x14 Envelope
+print.dialog.na-10x15-envelope=10x15 Envelope
+print.dialog.na-legal=Legal
+print.dialog.na-letter=Letter
+print.dialog.na-number-9-envelope=No. 9 Envelope
+print.dialog.na-number-10-envelope=No. 10 Envelope
+print.dialog.na-number-11-envelope=No. 11 Envelope
+print.dialog.na-number-12-envelope=No. 12 Envelope
+print.dialog.na-number-14-envelope=No. 14 Envelope
+print.dialog.not-accepting-jobs=Not accepting jobs
+print.dialog.one-sided=One sided
+print.dialog.oufuko-postcard=Double Postcard (JIS)
+print.dialog.personal-envelope=Personal Envelope
+print.dialog.portrait=Portrait
+print.dialog.quarto=Quarto
+print.dialog.reverse-landscape=Reverse Landscape
+print.dialog.reverse-portrait=Reverse Portrait
+print.dialog.side=Side
+print.dialog.tabloid=Tabloid
+print.dialog.top=Top
+print.dialog.two-sided-long-edge=Two Sided, Long Edge
+print.dialog.two-sided-short-edge=Two Sided, Short Edge
+print.dialog.error.Invalid_left_margin=Invalid left margin.
+print.dialog.error.Invalid_top_margin=Invalid top margin.
+print.dialog.error.Invalid_left_andor_right_margin=Invalid left and/or right margin.
+print.dialog.error.Invalid_top_andor_bottom_margin=Invalid top and/or bottom margin.
+print.dialog.preview=Preview
+
+print.toggle-show-page-breaks.label=Toggle Page Break Marker
+
+printpreview.dialog.title=Print Preview
+printpreview.dialog.nextPage=Next Page
+printpreview.dialog.prevPage=Previous Page
+printpreview.dialog.zoomin=Zoom In
+printpreview.dialog.zoomout=Zoom Out
+
+
#}}}
#{{{ Various dialog boxes
#{{{ About dialog
about.title=Информация о jEdit
-about.version=jEdit {0} {1} mode, using {2} Java {3}
+about.version=jEdit {0} в режиме {1}, использует {2} Java {3}
about.mode.standalone=standalone
about.mode.server=server
about.mode.server-background=server-background
@@ -602,36 +773,36 @@
# insert a space by itself in the text to create blank lines.
about.text.prefix=jEdit был создан следующими разработчиками:
about.text.suffix=Отдельная благодарность пользователям\n\
- за их коментарии, предложения и доклады об ошибках.
+ за их комментарии, предложения и сообщения об ошибках.
#}}}
#{{{ Error list dialog, used to report I/O and plugin load errors
-error-list.plugin-manager=Управление модулями
+error-list.plugin-manager=Управление плагинами
#}}}
#{{{
largeBufferDialog.title=Буфер{0} слишком велик
largeBufferDialog.message=Этот буфер слишком велик, что может привести к\n\
- замдлению работы программы из-за цветового подсвечивания синтаксиса.\n\
+ замедлению работы программы из-за подсветки синтаксиса.\n\
Следующие дейтвия могут помочь:\n\
- -Перейти в режим подсвтки нечувствительной к контексту. Подсветка \n\
+ -Перейти в режим подсветки нечувствительной к контексту. Подсветка \n\
производится для каждой строки независимо, что увеличивает скорость\n\
работы, но результаты могут быть неверны.\n\
- Использовать режим 'текст' (подсветка будет отключена)
largeBufferDialog.fullSyntax=Полная подсветка синтаксиса
-largeBufferDialog.contextInsensitive=Подсветка синтаксиса, нечуствительная к контексту
-largeBufferDialog.defaultMode=Текстовой режим редактирования
+largeBufferDialog.contextInsensitive=Подсветка синтаксиса, нечувствительная к контексту
+largeBufferDialog.defaultMode=Текстовый режим редактирования
#}}}
#{{{ I/O error dialog box
ioerror.title=Ошибка ввода/вывода
-ioerror.caption=Операции ввода/вывода (количеством {0}) не могут быть завершены:
+ioerror.caption=Следующие операции ({0}) ввода/вывода не могут быть завершены:
ioerror.caption-1=Операция ввода/вывода не может быть завершена:
ioerror={0}
-ioerror.directory-error=Невозможно считать директорию: {0}
-ioerror.directory-error-nomsg=Невозможно считать директорию.
-ioerror.encoding-error=Фаил не может быть корректно загружен (возможна потеря данных)\n\
+ioerror.directory-error=Невозможно прочитать каталог: {0}
+ioerror.directory-error-nomsg=Невозможно прочитать каталог.
+ioerror.encoding-error=Файл не может быть корректно загружен (возможна потеря данных)\n\
при использовании кодировки "{0}".\n\
({1})\n\
Попробуйте использовать другую кодировку.\n\
@@ -643,8 +814,8 @@
ioerror.read-error=Невозможно загрузить: {0}
ioerror.write-error=Невозможно сохранить: {0}
ioerror.unsupported-encoding-error=Кодировка {0} не поддерживается Вашей JVM (виртуальной машиной Jawa)
-ioerror.open-directory=Нельзя загрузить директорию в буфер.
-ioerror.save-directory=Нельзя перезаписать директорию буфером.
+ioerror.open-directory=Нельзя загрузить каталог в буфер.
+ioerror.save-directory=Нельзя перезаписать каталог буфером.
ioerror.no-read=Недостаточный уровень доступа для загрузки файла.
ioerror.no-write=Недостаточный уровень доступа для сохранения файла.
ioerror.write-error-readonly=Нельзя сохранить, файл только для чтения.
@@ -653,25 +824,28 @@
ioerror.delete-error=Невозможно удалить файл.
ioerror.rename-exists=Невозможно перезаписать существующий файл {0}.
ioerror.rename-error=Невозможно переименовать в {0}.
-ioerror.mkdir-error=Невозможно создать директорию.
-
-vfs.not-supported.list=Невозможно инспектировать директории на файловой системе "{0}".
-vfs.not-supported.load=Невозможно открыть файлы с файловой системы "{0}".
-vfs.not-supported.save=Невозможно сохранять файлы на файловую систему "{0}".
+ioerror.mkdir-error=Невозможно создать каталог.
+ioerror.backup-failed=Бэкап не удался. Проверьте настройки "Сохранение и бэкап".
+ioerror.backup-same-name=Имя файла бэкапа совпадает с именем оригинального файла.
+ioerror.copy-self=Деструктивная операция, копирование файла в самого себя, была отклонена: {0}
+
+vfs.not-supported.list=Невозможно инспектировать каталоги в файловой системе "{0}".
+vfs.not-supported.load=Невозможно открыть файлы из файловой системы "{0}".
+vfs.not-supported.save=Невозможно сохранить файлы в файловую систему "{0}".
vfs.overwrite-readonly.title=Файл только для чтения
vfs.overwrite-readonly.message=Файл {0} только для чтения.\n\
- Хотите все равно спасти его, сбросив флаг "только дла чтения"?\n\
- Это двухступенчатая операция (также меняет владельца файла на Unix)
+ Все равно хотите сохранить его, сбросив флаг "только дла чтения"?\n\
+ Это двухэтапная операция (также меняет владельца файла на Unix)
vfs.twostageimpossible.title=Двухступенчатое сохранение невозможно
vfs.twostageimpossible.message=Двухступенчатое сохранение невозможно, желаете\n\
все равно продолжить сохранение?
-out-of-memory-error=Недостаточно памяти у Java для завершения запроса.\n\
- Попробуйте увеличить максимум памяти отведенный Java.\n\
+out-of-memory-error=У Java недостаточно памяти для выполнения операции.\n\
+ Попробуйте увеличить максимум памяти отведенный для Java.\n\
\n\
- Описание изменения памяти для Java находится в разделе\n\
+ Описание изменения памяти Java находится в разделе\n\
"Буферы" главы "Основы jEdit" в руководстве пользователя.
#}}}
@@ -681,7 +855,7 @@
read-error.title=Ошибка чтения
# {0} - the path name {1} - the error message
read-error.message=Файл {0}\n\
- не может быть загружен ис-за ошибки ввода/вывода.\n\
+ не может быть загружен из-за ошибки ввода/вывода.\n\
({1})
write-error.title=Ошибка записи
@@ -690,16 +864,16 @@
не может быть сохранён из-за ошибки ввода/вывода.\n\
({1})
-directory-error.title=Ошибка директории
+directory-error.title=Ошибка каталога
# {0} - the path name {1} - the error message
-directory-error.message=Директория {0}\n\
- не может быть прочитана ис-за ошибки ввода/вывода.\n\
+directory-error.message=Каталог {0}\n\
+ не может быть прочитан из-за ошибки ввода/вывода.\n\
({1})
-directory-error-nomsg.title=Ошибка директории
+directory-error-nomsg.title=Ошибка каталога
# {0} - the path name
-directory-error-nomsg.message=Директория {0}\n\
- не может быть прочитана ис-за ошибки ввода/вывода.
+directory-error-nomsg.message=Каталог {0}\n\
+ не может быть прочитан ис-за ошибки ввода/вывода.
encoding-error.title=Несовместимая кодировка
encoding-error.message=Файл {0}\n\
@@ -712,13 +886,13 @@
В случае если не знаете какую кодировку использовать\n\
попробуйте "ASCII" или "8859_1".
-open-directory.title=Невозможно открыть директорию
-open-directory.message={0} - это директория.\n\
- Директории нельзя открывать для редактирования.
-
-save-directory.title=Невозможно сохранить директорию
-save-directory.message={0} - это директория.\n\
- Буфер невозможно сохранить как директорию.
+open-directory.title=Невозможно открыть каталог
+open-directory.message={0} - это каталог.\n\
+ Каталоги нельзя открывать для редактирования.
+
+save-directory.title=Невозможно сохранить каталог
+save-directory.message={0} - это каталог.\n\
+ Буфер невозможно сохранить как каталог.
no-read.title=Невозможно открыть файл
no-read.message=Невозможно читать {0}.\n\
@@ -775,9 +949,9 @@
autosave-loaded.title=Файл автосохранения загружен
autosave-loaded.message=Файл автосохранения {0}\n\
- был загружен. Пожалуйста проверте, действительно ли он содержит Ваши\n\
+ был загружен. Пожалуйста, проверьте, действительно ли он содержит Ваши\n\
несохранённые данные. Если Вы желаете сохранить эти изменения, сохраните\n\
- отркытый файл. В противном случае используйте меню Файл->Перезагрузить.
+ открытый файл. В противном случае используйте меню Файл->Перезагрузить.
#}}}
#{{{ Save all confirm dialog
@@ -787,34 +961,34 @@
#{{{ Reload all confirm dialog
reload-all.title=Перезагрузить все буферы
-reload-all.message=Вы действительно хотите перезагрузить все жуферы с диска?\n\
- Не сохранённые изменения во всех открытых буферах БУДУТ ПОТЕРЯНЫ!
+reload-all.message=Вы действительно хотите перезагрузить все буферы с диска?\n\
+ Несохранённые изменения во всех открытых буферах БУДУТ ПОТЕРЯНЫ!
#}}}
#{{{ Encoding prompt
-encoding-prompt.title=Отркыть с другой кодировкой
+encoding-prompt.title=Открыть в другой кодировке
encoding-prompt.message=Использовать кодировку:
#}}}
#{{{ Macro recording already in progress dialog
-already-recording.title=Запись уже активна
-already-recording.message=Сапис макро-команды уже активна.
+already-recording.title=Запись уже идёт
+already-recording.message=Запись макроса уже идёт.
#}}}
#{{{ No temporary macro dialog
-no-temp-macro.title=Нет временной макро-команды
-no-temp-macro.message=Временная макро-команда ещё не была записана.
+no-temp-macro.title=Нет временного макроса
+no-temp-macro.message=Временный макрос ещё не был записан.
#}}}
#{{{ Record macro dialog
-record.title=Запись макро-команды
-record.message=Има для макро-команды:
+record.title=Запись макроса
+record.message=Имя макроса:
#}}}
#{{{ Some features don't work with -nosettings dialog
no-settings.title=Функция отключена
-no-settings.message=jEdit был запущен с опцией -nosettings.\n\
- Чтобы использовать данную функцию, нужно зпаустить jEdit без этой опции.
+no-settings.message=jEdit был запущен с параметром -nosettings.\n\
+ Чтобы использовать данную функцию, нужно запустить jEdit без этого параметра.
#}}}
#{{{ Some features don't work with the web start version
@@ -831,7 +1005,7 @@
search.replace=Замена:
search.replace.mnemonic=w
search.string-replace-btn=Текст
-search.beanshell-replace-btn=Результат выполнения програмки на BeanShell
+search.beanshell-replace-btn=Результат выполнения сниппета BeanShell
search.settings=Настройки:
search.keep=Не убирать диалог
@@ -839,13 +1013,13 @@
search.word=Слово целиком (q)
search.word.bar=Слово целиком
search.word.mnemonic=q
-search.case=Без учета размера букв
+search.case=Без учета регистра
search.case.mnemonic=i
-search.regexp=Регулярные выражения
+search.regexp=Регулярное выражение
search.regexp.mnemonic=x
-search.hypersearch=Глобально
+search.hypersearch=Гипер-поиск
search.hypersearch.mnemonic=h
-search.wrap=Авто-заворот на границе
+search.wrap=Автовозврат к началу
search.wrap.mnemonic=t
search.direction=Направление:
@@ -861,25 +1035,25 @@
search.current.mnemonic=c
search.all=Всех буферах
search.all.mnemonic=l
-search.directory=Директории:
+search.directory=Каталоги:
search.directory.mnemonic=d
-search.skipHidden=Пропускать скрытые/запасные
-search.skipBinary=Пропускать файлы с данными
+search.skipHidden=Пропускать скрытые/бэкапы
+search.skipBinary=Пропускать бинарные файлы
search.skipHidden.mnemonic=h
search.skipBinary.mnemonic=b
-search.directoryField=Директория:
+search.directoryField=Каталог:
search.directoryField.mnemonic=y
search.filterField=Фильтр:
search.filterField.mnemonic=f
glob.tooltip={*.c,*.h} для нескольких расширений
-search.subdirs=Искать в под-директориях
+search.subdirs=Искать в подкаталогах
search.subdirs.mnemonic=u
search.choose=Выбор...
search.choose.mnemonic=e
-search.synchronize=Согласовать
+search.synchronize=Синхронизировать
search.synchronize.mnemonic=z
-search.synchronize.tooltip=Установить фильтр и дирекорию в соответсвии с текущим буфером.
+search.synchronize.tooltip=Устанавливает фильтр и каталог в соответствии с расширением/расположением текущего буфера.
search.findBtn=Искать
search.findBtn.mnemonic=f
search.replaceBtn=Заменить
@@ -894,13 +1068,13 @@
#}}}
#{{{ Keep searching dialog
-keepsearching.title=Больше не найдено
-keepsearching.message=Ничего не найдено. Продолжить поиск с\n\
+keepsearching.title=Не найдено
+keepsearching.message=Больше ничего не найдено. Продолжить поиск с\n\
{0,choice,0#начала|1#конца}?
#}}}
#{{{ HyperSearch results dialog
-hypersearch-results.title=Результаты глобального поиска
+hypersearch-results.title=Результаты гипер-поиска
hypersearch-results.result-caption={0} ({1,choice,1#1 совпадение|1<{1,number,integer} совпадений в '{2,choice,1#1 файле|1<{2,number,integer} файлах}'})
hypersearch-results.open=Открыть
hypersearch-results.open-view=Открыть в новом окне
@@ -911,10 +1085,10 @@
hypersearch-results.expand-child-nodes=Раскрыть содержимые узлы
hypersearch-results.collapse-child-nodes=Схлопнуть содержимые узлы
hypersearch-results.copy-to-clipboard=Копировать в буфер фрагментов
-hypersearch-results.redo=Повторить глобальный поиск
+hypersearch-results.redo=Повторить гипер-поиск
hypersearch-results.tree-view=Переключить вид как дерево
hypersearch-results.clear.label=Удалить все узлы
-hypersearch-results.stop.label=Остановить глобальный поиск и показать текущие результаты
+hypersearch-results.stop.label=Остановить гипер-поиск и показать текущие результаты
hypersearch-results.multi.label=Переключить показ множественных результатов
hypersearch-results.highlight.label=Задать вид показа совпадений
hypersearch-results.file-caption={0} ({1,choice,1#1 совпадение|1<{1,number,integer} совпадений в '{2,choice,1#1 строке|1<{2,number,integer} строках}'})
@@ -928,7 +1102,7 @@
#{{{ HyperSearch too many results
hypersearch.tooManyResults.label=Слишком много результатов
hypersearch.tooManyResults.title=Слишком много результатов
-hypersearch.tooManyResults.message=Заказанный поиск вернул {0} \
+hypersearch.tooManyResults.message=Поиск вернул {0} \
результатов и ещё не окончен. Желаете остановить поиск?
#}}}
@@ -951,15 +1125,15 @@
#{{{ Empty fileset error dialog
empty-fileset.title=Пустое множество файлов
empty-fileset.message=Указанное множество файлов для поиска не содержит файлов.\n\
- Пожалуйста, проверте что фильтр имён файлов и директория для поиска\n\
+ Пожалуйста, проверьте что фильтр имеён файлов и каталог для поиска\n\
заданы правильно.
#}}}
#{{{ Can only search local directories dialog
-remote-dir-search.title=Выбрана удалённая директория
-remote-dir-search.message=Вы намереваетесь провести поиск в удалённой директории.\n\
+remote-dir-search.title=Выбран удалённый каталог
+remote-dir-search.message=Вы намереваетесь провести поиск в удалённом каталоге.\n\
Такая операция может быть очень медленной из-за сетевого сообщения.\n\
- Вы уверенны, что желаете продолжать?
+ Вы уверены, что желаете продолжать?
#}}}
#{{{ "Search in selection" active but nothing selected in text area
@@ -1018,13 +1192,21 @@
close.discard.mnemonic=d
#}}}
+#{{{ Close all confirm dialog
+closeothers.title=Закрыть все остальные буферы
+closeothers.message=Вы уверены, что хотите закрыть все остальные буферы?
+closeall.title=Закрыть все буферы
+closeall.message=Вы уверены, что хотите закрыть все буферы?
+#}}}
+
+
#{{{ Files changed on disk dialog
files-changed.title=Файлы изменён на диске
files-changed.caption=Следующие файлы были изменены на диске внешней программой:
files-changed.deleted=Удалён с диска; сохраните чтобы создать вновь:
files-changed.changed-auto=Автоматически перезагружен:
files-changed.changed=Изменён на диске:
-files-changed.changed-dirty-auto=Буфер с изменениями- не перезагружен:
+files-changed.changed-dirty-auto=Буфер с изменениями; не перезагружен:
files-changed.changed-dirty=Буфер с изменениями, а файл изменён на диске:
files-changed.select-all=Выбрать все
files-changed.select-all.mnemonic=a
@@ -1036,20 +1218,20 @@
#{{{ Abbrev dialogs
add-abbrev.title=Добавить сокращение
-add-abbrev.mode=Доабвить только для режима
-add-abbrev.global=Дабавить глобально
+add-abbrev.mode=Добавить только для режима
+add-abbrev.global=Добавить глобально
edit-abbrev.title=Изменить сокращение
-edit-abbrev.duplicate.title=Дублировать сокращенив
+edit-abbrev.duplicate.title=Дублировать сокращение
edit-abbrev.duplicate.message=\
Расширение для этого сокращения уже существует.\n\
\n\
Заменить существующее расширение?
abbrev-editor.abbrev=Сокращение:
-abbrev-editor.before=Текст до каретки:
-abbrev-editor.after=Текст после каретки:
+abbrev-editor.before=Текст до курсора:
+abbrev-editor.after=Текст после курсора:
#}}}
#{{{ XMode errors
@@ -1064,50 +1246,50 @@
xmode-error.token-invalid=Поле типа {0} недопустимо
xmode-error.empty-keyword=Ключевое слово text не может быть пустым
xmode-error.regexp=Недопустимое регулярное выражение\n({0})
-xmode-error.hash-char-and-hash-chars-mutually-exclusive=Недопустимо одновременное присутствие HASH_CHAR и HASH_CHARS
+xmode-error.hash-char-and-hash-chars-mutually-exclusive=HASH_CHAR и HASH_CHARS не могут быть заданы одновременно
xmode-error.delegate-invalid=Недопустимый делегат: {0}
#}}}
#{{{ JARClassLoader errors
-plugin-error.title=Ошибка в модуле
-plugin-error.caption=Следующий модуль не может быть загружен:
-plugin-error.caption-1=Следующий модуль не может быть загружен:
+plugin-error.title=Ошибка в плагине
+plugin-error.caption=Следующий плагин не может быть загружен:
+plugin-error.caption-1=Следующий плагин не может быть загружен:
plugin-error.load-error=Невозможно загрузить: {0}\n\
Вероятнее всего файл JAR повреждён; попробуйте\n\
- переустановить его. Полная запись стэка в меню \n\
+ переустановить его. Полная трассировка стека в меню \n\
Услуги->Отладка->Записи Активности.
plugin-error.start-error=Невозможно запустить: {0}\n\
- Попробуйте обновление до последней версии модуля.
+ Попробуйте обновление до последней версии плагина.
plugin-error.already-loaded=Установлено две копии. Пожалуйста, удалите одну из \
копий.
-plugin-error.dep-jdk=Требуется Java {0} или новее, имеется версия {1}.
-plugin-error.dep-jedit=Требуется jEdit {0} или новее, у Вас версия {1}.\n\
+plugin-error.dep-jdk=Требуется Java {0} или более новая, имеется версия {1}.
+plugin-error.dep-jedit=Требуется jEdit {0} или более новая, у Вас версия {1}.\n\
Скачайте новую версия jEdit с сайта .
plugin-error.dep-plugin.no-version=Требуется {1} версии {0} \
- Или новее,\n\
- однако {1} че установлено.
+ или новее,\n\
+ однако {1} не установлено.
plugin-error.dep-plugin.broken=Требуется {0}, однако {0}\n\
не может быть загружено.
-plugin-error.dep-plugin=Требуется {1} версии {0} или новее, \
+plugin-error.dep-plugin=Требуется {1} версии {0} или более новый, \
однако имеется только {1} версии {2}.
plugin-error.dep-class=Требуется класс {0}.\n\
- Попробуйте установить соотвествующее дополнение или библиотеку классов.
+ Попробуйте установить соответствующий плагин или библиотеку классов.
plugin-error.missing-jar=Требуется JAR-файл {0}.\n\
- Этот файл, являеющийся частью данного дополнения, не чайден.\n\
- Попробуйте переустановить дополнение.
-plugin-error.not-42=Это дополнение не поддерживает динамической загрузки.\n\
- Необходимо перезапустить jEdit после установки или удаления этого дополнения.
+ Этот файл, являющийся частью данного плагина, не найден.\n\
+ Попробуйте переустановить плагин.
+plugin-error.not-42=Этот плагин не поддерживает динамической загрузки.\n\
+ Необходимо перезапустить jEdit после удаления или установки этого плагина.
-plugin-error-download.title=Ошибка в дополнении
-plugin-error-download.message=Ошибка при скачивании дополнения, попробуйте другое зеркало\n{0}
+plugin-error-download.title=Ошибка плагина
+plugin-error-download.message=Ошибка при скачивании плагина, попробуйте другое зеркало\n{0}
#}}}
#{{{ Macro dialogs
-macro-input.title=Ввод макро-команды
-macro-error.title=Ошибка макро-команды
-macro-message.title=Сообщение макро-команды
-macro-confirm.title=Подтверждение макро-команды
+macro-input.title=Ввод макроса
+macro-error.title=Ошибка макроса
+macro-message.title=Сообщение макроса
+macro-confirm.title=Подтверждение макроса
#}}}
#{{{ BeanShell stuff
@@ -1131,7 +1313,7 @@
выбранной строки:\n\
\n\
Переменные:\n\
- line - Номер страоки от начала буфера\n\
+ line - Номер строки от начала буфера\n\
index - Номер строки от начала выделения\n\
text - Текст строки\n\
view - Текущий вид\n\
@@ -1142,7 +1324,7 @@
#{{{ Macro not recording dialog
macro-not-recording.title=Запись не активна
-macro-not-recording.message=В данный момент запись макро-команды не активна.
+macro-not-recording.message=В данный момент запись макроса не активна.
#}}}
#{{{ Large repeat count warning
@@ -1168,14 +1350,14 @@
#{{{ Multiple I/O request errors
buffer-multiple-io.title=Ошибка ввода/вывода
buffer-multiple-io.message=Для каждого буфера может быть активна только одна \n\
- операция ввода/вывода. Пожалуйста. подождите пока текущая операция\n\
- не закончится (или прервите её в мониторе ввода/вывода),\n\
+ операция ввода/вывода. Пожалуйста, подождите пока текущая операция\n\
+ не закончится (или прервите её в мониторе ввода/вывода)\n\
прежде чем начинать новую операцию.
browser-multiple-io.title=Ошибка ввода/вывода
browser-multiple-io.message=Каждый обозреватель файловой системы может выполнять\n\
- только одну операцию ввода/вывода одновременно. Пожалуйста. подождите пока текущая операция\n\
- не закончится (или прервите её в мониторе ввода/вывода),\n\
+ только одну операцию ввода/вывода единовременно. Пожалуйста, подождите пока текущая операция\n\
+ не закончится (или прервите её в мониторе ввода/вывода)\n\
прежде чем начинать новую операцию.
#}}}
@@ -1186,9 +1368,9 @@
#}}}
#{{{ Text under caret does not have a syntax style (token type)
-syntax-style-no-token.title=Конфигурация стиля синтаксиса
-syntax-style-no-token.message=Для текста под кареткой нет ассоциированного \
- стиля синтаксиса, который можно конфигурировать.
+syntax-style-no-token.title=Настройка стиля синтаксиса
+syntax-style-no-token.message=Для текста под курсором нет ассоциированного \
+ стиля синтаксиса, который можно настраивать.
#}}}
#{{{ View title dialog
@@ -1202,11 +1384,12 @@
Для изменения настроек режима редактирования смотри диалог\n\
Услуги->Общие настройки->Редактирование.
buffer-options.loading-saving=Загрузка и сохранение
-buffer-options.lineSeparator=Раззделитель строк:
+buffer-options.lineSeparator=Разделитель строк:
buffer-options.encoding=Кодировка:
buffer-options.gzipped=Сжатие (GZIP) файлов на диске
buffer-options.editing=Редактирование
buffer-options.mode=режим редактирования:
+buffer-options.locked=Заблокирован
#}}}
#{{{ Global options dialog
@@ -1225,62 +1408,63 @@
options.general.label=Общие
options.general.lineSeparator=Разделитель строк по умолчанию:
options.general.encoding=Кодировка по умолчанию:
-options.general.encodingAutodetect=Определють кодировку файла автоматически
+options.general.encodingAutodetect=Определять кодировку файла автоматически, если возможно
options.general.checkModStatus=Если открытые файлы изменены на диске:
options.general.checkModStatus.nothing=ничего не делать
options.general.checkModStatus.prompt=спросить
-options.general.checkModStatus.reload=автоматически перегрузить и информировать
-options.general.checkModStatus.silentReload=автоматически перегрузить без информирования
-options.general.checkModStatusUpon=Проверять файлы после:
-options.general.checkModStatusUpon.focus=получения фокуса программой
-options.general.checkModStatusUpon.all=получения фокуса, посещения буфера, сохранения любого буфера
-options.general.checkModStatusUpon.operations=посещения буфера или сохранения любого буфера
-options.general.checkModStatusUpon.focusBuffer=посещения или сохранения буфера
-options.general.checkModStatusUpon.none=сохранения буфера
+options.general.checkModStatus.reload=автоматически перезагрузить и уведомить
+options.general.checkModStatus.silentReload=автоматически перезагрузить без уведомления
+options.general.checkModStatusUpon=Проверять файлы на изменения после:
+options.general.checkModStatusUpon.focus=получения фокуса окном (проверять все буферы)
+options.general.checkModStatusUpon.all=получения фокуса окном или посещения буфера
+options.general.checkModStatusUpon.visitBuffer=посещения буфера
+options.general.checkModStatusUpon.none=не проверять
options.general.recentFiles=Количество запоминаемых недавних файлов:
-options.general.hypersearch.maxWarningResults=Максимальное число результатов глобального поиска:
+options.general.hypersearch.maxWarningResults=Максимальное число результатов гипер-поиска:
options.general.sortRecent=Сортировать недавние файлы
-options.general.saveCaret=Сохранять положение каретки с недавними файлами
-options.general.persistentMarkers=Сохранять закладки
-options.general.resetUndo=Ошищать историю действий после сохранения
+options.general.hideOpen=Скрывать открытые файлы из списка недавних
+options.general.closeAllConfirm="Закрыть все" требует подтверждения
+options.general.saveCaret=Сохранять положение курсора в недавних файлах
+options.general.persistentMarkers=Сохранять метки
+options.general.resetUndo=Очищать историю после сохранения
options.general.restore=Открывать все прежде открытые файлы во время старта
options.general.restore.splits=Восстанавливать разделение
options.general.restore.remote=... включая не локальные файлы
options.general.restore.cli=... включая файлы указанные в командной строке
options.general.encodingDetectors=Список автодетекторов кодировок:
-options.general.fallbackEncodings=Список дублирующих кодировок:
+options.general.fallbackEncodings=Список резервных кодировок:
options.general.fallbackEncodings.tooltip=Список кодировок, разделённых пробелами, используемых при ошибках кодировки при загрузке
-options.general.systrayicon=Показывать иконку в панели системы
+options.general.systrayicon=Показывать иконку в панели операционной системы
#}}}
#{{{ Abbreviations pane
options.abbrevs.label=Сокращения
options.abbrevs.set=Набор сокращений:
-options.abbrevs.expandOnInput=Клавиша пробел расширяет сокращение
+options.abbrevs.expandOnInput=Пробел разворачивает сокращение
options.abbrevs.abbrev=Сокращение
-options.abbrevs.expand=Расширенный текст
+options.abbrevs.expand=Полный текст
options.abbrevs.add=Добавить...
options.abbrevs.edit=Изменить...
options.abbrevs.remove=Удалить
#}}}
#{{{ Appearance pane
-options.appearance.label=Внешность
+options.appearance.label=Вид
options.appearance.iconTheme=Тема иконок:
-options.appearance.fonts.antialias=Сглаживать шрифты в не-текстовых областях
-options.appearance.lf=Внешность и поведение Swing'а:
+options.appearance.fonts.antialias=Сглаживать шрифты в нетекстовых областях
+options.appearance.lf=Вид и поведение Swing'а:
options.appearance.primaryFont=Шрифт для кнопок, меню и ярлыков:
options.appearance.secondaryFont=Шрифт для списков и текстовых полей:
options.appearance.helpViewerFont=Шрифт для просмотра документации:
options.appearance.history=Количество запоминаемых элементов для текстовых полей:
-options.appearance.menuSpillover=Количество элементов ведущее к перетеканию меню:
-options.appearance.startup.label=Настрйки запуска
+options.appearance.menuSpillover=Количество элементов до переполнения меню:
+options.appearance.startup.label=Опции запуска
options.appearance.showSplash=Показывать заставку при запуске
options.appearance.showTips=Показывать советы при запуске
options.appearance.experimental.label=Экспериментальные настройки
options.appearance.experimental.caption=Следующие три настройки могут работать \
с некоторыми версиями\n\
- Java. В случае проблем, отклющите их.
+ Java. В случае проблем, отключите их.
options.appearance.textColors=Использовать цвета текстовой области во всех \
текстовых компонентах
@@ -1294,20 +1478,20 @@
#{{{ Context Menu pane
options.context.label=Контекстное меню
-options.context.caption=Элементы в меню правой клавиши дле текстовой области:
+options.context.caption=Элементы контекстного меню текстовой области:
options.context.add=Добавить...
options.context.remove=Удалить
options.context.moveUp=Наверх
options.context.moveDown=Вниз
-options.context.reset=Вернуть оригинальное меню
+options.context.reset=Восстановить меню по умолчанию
options.context.add.title=Добавить к контекстному меню
options.context.add.caption=Добавить к контекстному меню:
options.context.add.separator=Разделитель
-options.context.add.action=Команда или макро-команда:
-options.context.includeOptionsLink.label=Включить "Изменить это Меню..."
+options.context.add.action=Команда или макрос:
+options.context.includeOptionsLink.label=Добавить пункт "Настроить это меню..."
-options.context.reset.dialog.title=Вернуть к оригинальному
-options.context.reset.dialog.message=Вы уверены что хотите верныть контекстное меню к оригинальному виду?
+options.context.reset.dialog.title=Восстановить меню по умолчанию
+options.context.reset.dialog.message=Вы уверены, что хотите вернуть контекстное меню к изначальному виду?
#}}}
#{{{ Docking pane
@@ -1318,12 +1502,12 @@
options.docking.autoSaveModeLayout.label=Автоматически сохранять раскладку дока для режима редактирования
options.docking.autoLoadModeLayout.label=Автоматически загружать раскладку дока для режима редактирования
options.docking.selectSet.label=Набор панелей дока:
-options.docking.system-change.note=(Экспериментальное) Перезапустите jEdit чтобы изменения вошли в силу
+options.docking.system-change.note=(Экспериментальное) Перезапустите jEdit чтобы изменения вступили в силу
#}}}
#{{{ Editing pane
options.editing.label=Редактирование
-options.editing.defaultMode=Режим редактирования по умолчанию:
+options.editing.defaultMode=Режим по умолчанию:
options.editing.undoCount=Количество отменяемых действий:
options.editing.caption-0=\
Для настроек режима редактирования, выберите режим из меню\n\
@@ -1332,37 +1516,53 @@
Отмените выбор "По умолчанию", чтобы изменить настройки для режима.\n\
В противном случае, в данном режиме будут активны настройки из раздела\n\
<По умолчанию>.
-options.editing.mode=Настройки для режима:
+options.editing.mode=Настройки режима:
options.editing.global=<По умолчанию>
options.editing.useDefaults=Использовать настройки по умолчанию
-options.editing.filenameGlob=Шаблон имени:
+options.editing.filenameGlob=Шаблон имени файла:
options.editing.firstlineGlob=Шаблон первой строки:
options.editing.folding=Режим свёртки:
options.editing.collapseFolds=Первоначально свернуть до уровня:
options.editing.wrap=Перенос по словам:
options.editing.maxLineLen=Граница переноса:
options.editing.maxLineLen.tooltip=Выберите 0 для границы текстовой области (только временный режим)
-options.editing.tabSize=Размер табуляции:
-options.editing.indentSize=Размер отступа:
-options.editing.noWordSep=Дополнителые символы слова:
-options.editing.camelCasedWords=Разделять слова в "ВерблюжемРегистре"
+options.editing.tabSize=Ширина табуляции:
+options.editing.indentSize=Ширина отступа:
+options.editing.noWordSep=Дополнительные символы слова:
+options.editing.camelCasedWords=Разделять слова в "CamelCase"
options.editing.noTabs=Использовать пробелы для табуляции
-options.editing.elasticTabstops=Эластичных шаги для отступа
-options.editing.elasticTabstops.tooltip=(Эксперимент) - может привести к нестабильности
+options.editing.elasticTabstops=Использовать эластичную табуляцию для отступа
+options.editing.elasticTabstops.tooltip=Колонки в строках над и под "ячейкой" выравниваются по ширине табуляции которая может увеличиваться или уменьшаться в зависимости от ширины ячейки.
options.editing.deepIndent=Глубокий отступ
options.editing.autoIndent=Автоматический отступ
-options.editing.largefilemode.title=Режим больших файлов
-options.editing.largefilemode=Как работать с большими файлами:
-options.editing.largefilemode.option.ask=Спросить что делать при открытии большого файла
-options.editing.largefilemode.option.full=Использовать полный анализ : подцветка синтаксиса будет работать как обычно, \
- программа может статьочень медленнойс (не рекомендуется)
-options.editing.largefilemode.option.limited=Подцветка без анализа контекста : Подзветка работает \
- быстро, но рультат возможно не вполне корректен. \
- Каждая строка подцвечивается независимо, вне контекста \
- предыдущей строки. Синтаксис будет подцвечен непровильно в случае \
- конструкций занимающих несколько строк (коментарии, xml ...) \
- Временные переносы тоже отключены(рекомендуется)
-options.editing.largefilemode.option.nohighlight=Отключить подцветку и переносы
+options.editing.deleteMode=Удалить этот режим
+options.editing.addMode=Добавить режим
+options.editing.addMode.dialog.title=Добавить режим
+options.editing.addMode.dialog.browse=Просмотр
+options.editing.addMode.dialog.modeName=Название режима:
+options.editing.addMode.dialog.modeFile=Выберите файл режима:
+options.editing.addMode.dialog.filenameGlob=Шаблон имени:
+options.editing.addMode.dialog.firstLineGlob=Шаблон первой строки:
+options.editing.addMode.dialog.warning.title=Подтвердите замену режима:
+options.editing.addMode.dialog.warning.message=Этот режим уже существует. Вы хотите его заменить?
+options.editing.addMode.dialog.warning.message1=Невозможно скопировать файл режима
+options.editing.addMode.dialog.Mode_name_may_not_be_empty.=Название режима не может быть пустым.
+options.editing.addMode.dialog.Mode_file_may_not_be_empty.=Файл режима не может быть пустым.
+options.editing.addMode.dialog.Either_file_name_glob_or_first_line_glob_or_both_must_be_filled_in.=Either file name glob or first line glob or both must be filled in.
+options.editing.addMode.dialog.errorTitle=Ошибка
+options.editing.deleteMode.dialog.title=Подтвердите удаление режима
+options.editing.deleteMode.dialog.message=Вы уверены, что хотите удалить этот режим? Удаление невозможно будет отменить.
+options.editing.deleteMode.dialog.message1=Невозможно удалить файл режима
+options.editing.deleteMode.dialog.message2=для режима
+options.editing.modes.selectModes=Выберите режимы, которые должны быть видны в диалогах выбора режима:
+options.editing.modes.available=Доступные режимы
+options.editing.modes.selected=Выбранные режимы
+options.editing.modes.available.tooltip=Режимы из этой колонки НЕ будут видны в списках выбора режима. \
+ Перетащите их в правую колонку, чтобы показать.
+options.editing.modes.selected.tooltip=Режимы из этой колонки будут видны в списках выбора режима. \
+ Перетащите их в левую колонку, чтобы скрыть.
+options.editing.modes.deleteSelected=Удалить выбранные
+options.editing.modes.Delete_these_modes?=Удалить эти режимы?
#}}}
#{{{ Encodings pane
@@ -1370,10 +1570,10 @@
options.encodings.selectEncodings=Выберите кодировки для показа в диалога выбора кодировки:
options.encodings.available=Доступные кодировки
options.encodings.selected=Выбранные кодировки
-options.encodings.available.tooltip=Кодировки в этой колонке не будут включены в диалоги.\
- Перетащите их в правую колонку для использования
-options.encodings.selected.tooltip=Кодировки в этой колонке будут показаны в диалогах выбора кодировки.\
- Перетащите их в левую колонку чтобы удалить их из диалогов.
+options.encodings.available.tooltip=Кодировки из этой колонки НЕ будут видны в списках выбора кодировки. \
+ Перетащите их в правую колонку, чтобы показать.
+options.encodings.selected.tooltip=Кодировки из этой колонки будут видны в списках выбора кодировки. \
+ Перетащите их в левую колонку, чтобы скрыть.
#}}}
#{{{ Gutter pane
@@ -1384,26 +1584,44 @@
options.gutter.minLineNumberDigits=Минимальное количество разрядов для номеров строк:
options.gutter.selectionAreaEnabled=Область выделения строк когда номера не показаны
options.gutter.selectionAreaBgColor=Цвет фона области выделения
-options.gutter.selectionAreaWidth=Ширина области выделения (пикселы):
-options.gutter.font=Фонт:
-options.gutter.foreground=Цвет номеров:
+options.gutter.selectionAreaWidth=Ширина области выделения (пиксели):
+options.gutter.font=Шрифт:
+options.gutter.foreground=Цвет номера:
options.gutter.background=Цвет фона:
-options.gutter.borderWidth=Ширина границ канта:
+options.gutter.borderWidth=Ширина границы канта:
options.gutter.numberAlignment=Выравнивание номеров:
options.gutter.interval-1=Подсвечивать каждые\u0020
options.gutter.interval-2=строк:
options.gutter.currentLineHighlight=Подсвечивать текущую строку:
options.gutter.structureHighlight=Показывать пределы структуры:
-options.gutter.markerHighlight=Показывать позиции закладок:
+options.gutter.markerHighlight=Показывать позиции меток:
options.gutter.foldColor=Символы свёртки:
options.gutter.focusBorderColor=Активная граница канта:
options.gutter.noFocusBorderColor=Неактивная граница канта:
-options.gutter.foldStyle.label=Символ свёртки:
+options.gutter.foldStyle.label=Стиль свёртки:
options.gutter.foldStyleNames.Triangle=Треугольник
options.gutter.foldStyleNames.Square=Квадрат
options.gutter.foldStyleNames.Circle=Круг
#}}}
+#{{{ Large files pane
+options.large-files.label=Большие файлы
+options.editing.largefilemode.title=Режим больших файлов
+options.editing.largefilemode=Что делать с очень большими файлами (> {0} символов, или длина строки > {1}):
+options.editing.largefilemode.tooltip=Значения можно изменить в свойствах jEdit: largeBufferSize и longLineLimit
+options.editing.largefilemode.option.ask=Спросить что делать при открытии большого файла
+options.editing.largefilemode.option.full=Полная подсветка синтаксиса : подсветка синтаксиса будет работать как обычно, \
+ jEdit может работатьочень медленно, не рекомендуется
+options.editing.largefilemode.option.limited=\
+ Подсветка, нечувствительная к контексту : В этом случае подсветка работает быстро, но \
+ результат возможно не вполне корректен. Каждая строка подсвечивается независимо, \
+ вне контекста предыдущей строки. Синтаксис вероятно будет подсвечен неправильно \
+ в случае конструкций занимающих несколько строк (блочные комментарии, теги xml ...) \
+ Мягкий перенос также отключен(рекомендуется)
+options.editing.largefilemode.option.nohighlight=Без подсветки, без мягких переносов
+#}}}
+
+
#{{{ Mouse pane
options.mouse.label=Мышь
options.mouse.dragAndDrop=Перетаскивание в текстовой области
@@ -1417,17 +1635,20 @@
#}}}
#{{{ Plugin Manager pane
-options.plugin-manager.label=Управление модулями
+options.plugin-manager.label=Управление плагинами
options.plugin-manager.updateMirrors=Обновить список зеркал
options.plugin-manager.workthread=Обновляется список зеркал ...
-options.plugin-manager.downloadSource=Сгружать исходный код модулей
-options.plugin-manager.deleteDownloads=Удалять сгруженные архивы после установки
+options.plugin-manager.downloadSource=Скачивать исходный код плагинов
+options.plugin-manager.deleteDownloads=Удалять скачанные архивы после установки
options.plugin-manager.mirror=Предпочтительное зеркало:
-options.plugin-manager.location=Место установки модулей:
-options.plugin-manager.settings-dir=Директория настроек
-options.plugin-manager.app-dir=Директория программы
+options.plugin-manager.location=Место установки плагинов:
+options.plugin-manager.settings-dir=Каталог настроек
+options.plugin-manager.app-dir=Каталог программы
options.plugin-manager.none=Plugin Central default
-options.plugin-manager.disable-obsolete=Запретить устаревшие модули
+options.plugin-manager.disable-obsolete=Запретить устаревшие плагины
+options.plugin-manager.list-cache.minutes=Кешировать список плагинов на: (минут)
+options.plugin-manager.no-plugin-available=Нет доступных плагинов
+options.plugin-manager.no-plugin-uptodate=Все плагины обновлены до последних версий.
#}}}
#{{{ Printing pane
@@ -1441,63 +1662,68 @@
options.print.color=Цветная печать
options.print.tabSize=Ширина табуляции при печати:
options.print.workarounds=Коррекция проблем Java
-options.print.glyphVector=Коррекция интервала (увеличивает размер файла спула)
-options.print.force13=Использовать старый интерфейс (активируйте в случае, если \
- программа замораживается при печати)
+options.print.glyphVector=Коррекция интервала (рекомендуется, но увеличивает размер файла спула)
+options.print.force13=Использовать старый интерфейс печати (активируйте, если \
+ jEdit зависает при печати)
options.print.folds=Печатать свернутые области
+options.print.useSystemDialog=Использовать системный диалог печати
#}}}
#{{{ Proxy pane
-options.firewall.label=Серверы прокси
+options.firewall.label=Прокси-серверы
options.firewall.http.enabled=Использовать прокси для HTTP
options.firewall.http.host=Адрес HTTP прокси:
options.firewall.http.port=Порт HTTP прокси:
options.firewall.http.user=Имя:
options.firewall.http.password=Пароль:
options.firewall.http.nonProxy=Прямое соединение с:
-options.firewall.socks.enabled=Использовать SOCKS proxy server
-options.firewall.socks.host=SOCKS proxy host:
-options.firewall.socks.port=SOCKS proxy port:
+options.firewall.socks.enabled=Использовать SOCKS-прокси
+options.firewall.socks.host=SOCKS-прокси хост:
+options.firewall.socks.port=SOCKS-прокси порт:
#}}}
#{{{ Save & Backup pane
-options.save-back.label=Сохранение и резервирование
-
+options.save-back.label=Сохранение и бэкап
options.save-back.autosave=Частота авто-сохранения (секунды):
+options.save-back.autosave.tooltip=чтобы отключить, задайте 0
options.save-back.backups=Максимальное число резервных копий:
-options.save-back.backupDirectory=Директория для резервных копий:
-options.save-back.backupPrefix=Префикс резервной копии:
-options.save-back.backupSuffix=Суффик резервной копии:
-options.save-back.backupEverySave=Оставлять резервную копию при каждом сохранении
-options.save-back.twoStageSave=Двух-ступенчатое сохранение (надёхнее, но изменяет владельца файла на некоторых файловых системах)
-options.save-back.twoStageSave.tooltip=Стадия 1: Сиздать временный файл и сохранить в него. Стадия 2: Переименовать временный файл в редактируемый.
-options.save-back.confirmSaveAll=Запрашивать подтверждение при исполнении "Сохранить всех буферы"
-options.save-back.autosaveUntitled=Автосохранение неназванных буверов
-options.save-back.suppressNotSavedConfirmUntitled=Не помечать неназванные буферы как изменённые.
-options.save-back.suppressNotSavedConfirmUntitled.tooltip=Неназванные буферы будут стёрты при создании новых (так задумано, это не ошибка)
-options.save-back.useMD5forDirtyCalculation=Не помечать неназванный буфер как изменённый, если содержимое не изменено.
-options.save-back.useMD5forDirtyCalculation.tooltip=Сравнивать с длиной и суммой MD5 буфера при загрузке, чтобы определит, был ли буфер изменён.
-options.save-back.saveAsUsesFSB="Сохранить как" начинает в директории Обозревателя файловой системы
+options.save-back.backups.tooltip=чтобы отключить, задайте 0
+options.save-back.backupDirectory=Каталог для бэкапа, авто-сохранения:
+options.save-back.backupDirectory.tooltip=Если не задан, используется каталог буфера. Допускаются $VARIABLE/префиксы.
+options.save-back.backupPrefix=Префикс бэкапа:
+options.save-back.backupSuffix=Суффикс бэкапа:
+options.save-back.backupEverySave=Бэкап при каждом сохранении
+options.save-back.twoStageSave=Двух-ступенчатое сохранение (надёжнее, но изменяет владельца файла на некоторых файловых системах)
+options.save-back.twoStageSave.tooltip=Стадия 1: Создать временный файл и сохранить в него.\
+ Стадия 2: Переименовать временный файл в редактируемый.
+options.save-back.confirmSaveAll="Сохранить все буферы" требует подтверждения
+options.save-back.autosaveUntitled=Авто-сохранение безымянных
+options.save-back.suppressNotSavedConfirmUntitled=Закрывать безымянные буферы с изменениями без подтверждения.
+options.save-back.useMD5forDirtyCalculation=Не помечать буфер как изменённый, если содержимое не изменено.
+options.save-back.useMD5forDirtyCalculation.tooltip=Сравнивать с длиной и хешем MD5 буфера при загрузке, чтобы определить, что буфер всё-ещё изменён.
+options.save-back.saveAsUsesFSB="Сохранить как" открывается в каталоге Обозревателя файловой системы
#}}}
#{{{ Shortcuts pane
options.shortcuts.deletekeymap.label=удалить
-options.shortcuts.deletekeymap.dialog.label=Удалить привязку клавиш
+options.shortcuts.deletekeymap.dialog.label=Удалить раскладку
options.shortcuts.deletekeymap.dialog.title=Удалить
options.shortcuts.duplicatekeymap.label=дубликат
-options.shortcuts.duplicatekeymap.dialog.label=Имя для привязки клавиш
-options.shortcuts.duplicatekeymap.keymapalreadyexists.label=Это имя уже есть, выберите другое
-options.shortcuts.duplicatekeymap.dialog.title=имя привязки клавиш
+options.shortcuts.duplicatekeymap.dialog.label=Выберите название новой раскладки
+options.shortcuts.duplicatekeymap.keymapalreadyexists.label=Это название уже есть, выберите другое
+options.shortcuts.duplicatekeymap.dialog.title=название раскладки
options.shortcuts.resetkeymap.label=очистить
-options.shortcuts.resetkeymap.dialog.label=Очистить привязку клавиш
-options.shortcuts.resetkeymap.dialog.title=очистить привязку клавиш
-options.shortcuts.keymap.label=Выбор привязки клавиш:
+options.shortcuts.resetkeymap.dialog.label=Сбросить раскладку
+options.shortcuts.resetkeymap.dialog.title=сбросить раскладку
+options.shortcuts.keymap.label=Раскладка:
+options.shortcuts.keymap.tooltip=Именованный набор кастомизированных комбинаций клавиш
options.shortcuts.label=Комбинации клавиш
-options.shortcuts.select.label=Команды:
-options.shortcuts.select.tooltip=Можно выбрать общие комманды, макро-команды и команды расширений
+options.shortcuts.select.label=Категория:
+options.shortcuts.select.tooltip=Можно выбрать встроенные коммнды, макросы и команды плагинов
options.shortcuts.name=Команда
+options.shortcuts.actionset=Категория
options.shortcuts.shortcut1=Основная комбинация клавиш
-options.shortcuts.shortcut2=Алтернативная комбинация клавиш
+options.shortcuts.shortcut2=Альтернативная комбинация клавиш
options.shortcuts.filter.label=Фильтр:
options.shortcuts.filter.tooltip=Показывать только команды, содержащие текст
options.shortcuts.clear.label=Очистить
@@ -1509,51 +1735,51 @@
grab-key.assigned-to.none=<нет>
grab-key.assigned-to.prefix={0} префикс
grab-key.clear=Очистить
-grab-key.remove=Очистить
+grab-key.remove=Удалить текущую
-grab-key.remove-ask.title=Удалить привязку клавиш?
+grab-key.remove-ask.title=Удалить комбинацию клавиш?
grab-key.remove-ask.message=\
Вы не ввели комбинацию.\n\
- Очистить комбинацию клавиш для команды?
+ Хотите удалить текущую комбинацию клавиш?
grab-key.duplicate-alt-shortcut.title=Дубликат
grab-key.duplicate-alt-shortcut.message=\
Эта комбинация клавиш уже привязана к этой команде.\n\
- Пожалуйста выберите другую.
+ Пожалуйста, выберите другую.
grab-key.duplicate-shortcut.title=Дубликат
grab-key.duplicate-shortcut.message=\
Эта комбинация клавиш уже привязана к\n\
"{0}".\n\
\n\
- Изменить привязку?
+ Хотите изменить привязку?
-grab-key.prefix-shortcut.title=Привязка невозможна
+grab-key.prefix-shortcut.title=Недопустимая комбинация клавиш
grab-key.prefix-shortcut.message=\
- Нельзя использовать выбранные клавиши,\n\
- так как они используются в последовательности для другой команды.\n\
- Пожалуйста, измените выбор.
+ Нельзя использовать эту комбинацию,\n\
+ так как она является префиксом к другим комбинациям.\n\
+ Пожалуйста, выберите другую.
#}}}
#{{{ Status bar pane
options.status.label=Панель состояния
options.status.visible=Показывать панель состояния
options.status.plainview.visible=Показывать панель состояния в простом виде
-options.status.foreground=текст панели состояния:
+options.status.foreground=Текст панели состояния:
options.status.background=Фон панели состояния:
options.status.memory.foreground=Индикатор памяти:
options.status.memory.background=Фон индикатора памяти:
options.status.edit.title=Изменить элемент панели состояния
-options.status.edit.labelRadioButton=этикетка
-options.status.edit.widgetRadioButton=элемент
-options.status.edit.labelLabel=Тип этикетки:
-options.status.edit.widgetLabel=Выберите элемент:
-options.status.caret.linenumber=Показывать номер строки с кареткой
-options.status.caret.dot=Показывать смещение каретки от начала строки
-options.status.caret.virtual=Показывать виртуальное смещение каретки от начала строки
-options.status.caret.offset=Показывать смещение каретки от начала файла
+options.status.edit.labelRadioButton=текст
+options.status.edit.widgetRadioButton=виджет
+options.status.edit.labelLabel=Введите текст:
+options.status.edit.widgetLabel=Выберите виджет:
+options.status.caret.linenumber=Показывать номер строки с курсором
+options.status.caret.dot=Показывать смещение курсора от начала строки
+options.status.caret.virtual=Показывать виртуальное смещение курсора от начала строки
+options.status.caret.offset=Показывать смещение курсора от начала файла
options.status.caret.bufferlength=Показывать длину файла
-options.status.caret.title=Настройки индикаторов позиции каретки:
+options.status.caret.title=Опции отображения позиции курсора:
#}}}
#{{{ Syntax Highlighting pane
@@ -1577,26 +1803,28 @@
options.textarea.fontSubstWarning=ББез системных шрифтов нужны предпочитаемые шрифты.
options.textarea.foreground=Цвет текста:
options.textarea.background=Цвет фона:
-options.textarea.caret=Каретка:
+options.textarea.caret=Курсор:
options.textarea.blinkCaret=мерцание
options.textarea.blockCaret=кирпич
options.textarea.thickCaret=толстая
options.textarea.selection=Единичное выделение:
-options.textarea.multipleSelection=Множественные выделения:
+options.textarea.multipleSelection=Множественное выделение:
options.textarea.selectionFg=Цвет выделения:
-options.textarea.lineHighlight=Подсветка строки каретки:
-options.textarea.structureHighlight=Подсветка паных элементов:
+options.textarea.lineHighlight=Подсветка текущей строки:
+options.textarea.structureHighlight=Подсветка парных элементов:
options.textarea.eolMarkers=Маркеры конца строки:
-options.textarea.wrapGuide=Маркеры пословного переноса:
-options.textarea.electricBorders=Электрические бордюры (авто-прокрутка)
+options.textarea.wrapGuide=Направляющие переноса:
+options.textarea.pageBreaks=Разрывы страниц:
+options.textarea.electricBorders=Электрические границы (авто-прокрутка)
options.textarea.stdNextPrevWord=Переход к следующему/предыдущему слову включает пробелы
options.textarea.antiAlias=Сглаживание шрифта
-options.textarea.antiAlias.tooltip=Может замедлять дисплей на некоторых системах
+options.textarea.antiAlias.tooltip=Может замедлять отображение на некоторых системах
options.textarea.fracFontMetrics=Дробная размерность шрифта
options.textarea.fracFontMetrics.tooltip=Не рекомендуется с суб-пиксельным сглаживанием
-options.textarea.stripTrailingEOL=Прятать последнюю пустую строку (когда она есть)
+options.textarea.stripTrailingEOL=Прятать последнюю пустую строку (если она есть)
options.textarea.completeFromAllBuffers=Оканчивать слова из всех буферов (изначально \
поиск ограничен только текущим буфером)
+options.textarea.insertCompletionWithDigit=Завершать слово при вводе соответствующей цифры (иначе цифра считается частью слова)
options.textarea.lineSpacing.label=Дополнительная разрядка строк (в пикселях):
#}}}
@@ -1613,7 +1841,7 @@
options.toolbar.edit.title=Изменить элемент панели инструментов
options.toolbar.edit.caption=Тип:
options.toolbar.edit.separator=Разделитель
-options.toolbar.edit.action=Команда или макро-команда:
+options.toolbar.edit.action=Команда или макрос:
options.toolbar.edit.builtin=Использовать встроенную иконку:
options.toolbar.edit.file=Загрузить иконку из файла:
options.toolbar.edit.choose=Выбрать
@@ -1625,20 +1853,23 @@
#{{{ View pane
options.view.label=Вид
-options.view.viewLayout=Раскладка вида
+options.view.viewLayout=Схема
options.view.floatableToolbars=Плавающие панели
options.view.alternateDockingLayout=Изменить положение дока
-options.view.alternateToolBarLayout=Изменить положения панели инструментов
-options.view.showFullPath=Показывать полный путь буфера в панели заголовка
-options.view.showSearchbar=Всегда показывать понель поиска
-options.view.beepOnSearchAutoWrap=Пищать при завороте поиска через границу
+options.view.alternateToolBarLayout=Изменить положение панели инструментов
+options.view.abbreviatePaths=Сокращать пути с помощью переменных окружения, если возможно
+options.view.showFullPath=Показывать полный путь буфера в заголовке
+options.view.showSearchbar=Всегда показывать панель поиска
+options.view.beepOnSearchAutoWrap=Звуковой сигнал при автоматическом возврате поиска к началу
options.view.showBufferSwitcher=Показывать переключатель буферов
+options.view.bufferswitcher.sortBuffers=Сортировать переключатель буферов
+options.view.bufferswitcher.sortByName=Сортировать переключатель буферов по имени файла, а не по пути
options.view.bufferSwitcherMaxRowsCount=Число видимых рядов в переключателе буферов:
options.view.sortBuffers=Сортировать наборы буферов
options.view.sortByName=Сортировать наборы буферов по имени файла, а не по пути
-options.view.fullScreenIncludesMenu=Показывать панель меню в полно-экранном режиме
-options.view.fullScreenIncludesToolbar=Показывать панель инструментов в полно-экранном режиме
-options.view.fullScreenIncludesStatus=Показывать панел статуся в полно-экранном режиме
+options.view.fullScreenIncludesMenu=Показывать меню в полноэкранном режиме
+options.view.fullScreenIncludesToolbar=Показывать панель инструментов в полноэкранном режиме
+options.view.fullScreenIncludesStatus=Показывать панель статуса в полноэкранном режиме
options.bufferset.scope=Охват набора буферов:
#}}}
@@ -1653,28 +1884,28 @@
options.browser.colors.add=Добавить
options.browser.colors.remove=Удалить
-options.browser.general.label=Общие настройки
-options.browser.general.defaultPath=Изначальный путь:
+options.browser.general.label=Общие
+options.browser.general.defaultPath=Начальный путь:
options.browser.general.defaultPath.favorites=Избранное
-options.browser.general.defaultPath.home=Домашняя директория
-options.browser.general.defaultPath.last=Последняя посещённая директория
-options.browser.general.defaultPath.buffer=Директория текущего буфера
-options.browser.general.defaultPath.working=Рабочая директория процесса jEdit
+options.browser.general.defaultPath.home=Домашний каталог
+options.browser.general.defaultPath.last=Последний посещённый каталог
+options.browser.general.defaultPath.buffer=Каталог текущего буфера
+options.browser.general.defaultPath.working=Рабочий каталог процесса jEdit
options.browser.general.showMenubar=Показывать панель меню
options.browser.general.showToolbar=Показывать панель инструментов
options.browser.general.showIcons=Показывать иконки
options.browser.general.showHiddenFiles=Показывать скрытые файлы
-options.browser.general.sortIgnoreCase=Игнорировать размер букв при сортировке
-options.browser.general.sortMixFilesAndDirs=Файлы и директории подряд
-options.browser.general.doubleClickClose=Двойной щёлк по открытому файлу закрывает его
-options.browser.general.currentBufferFilter=Фильтр для файловых диалогов \
- из расширения текущего буфера
+options.browser.general.sortIgnoreCase=Игнорировать регистр при сортировке
+options.browser.general.sortMixFilesAndDirs=Файлы и каталоги подряд
+options.browser.general.doubleClickClose=Двойной щелчок по открытому файлу закрывает его
+options.browser.general.currentBufferFilter=Фильтровать файловые диалоги \
+ по расширению текущего буфера
options.browser.general.useDefaultIcons=Использовать иконки по умолчанию
#}}}
#{{{ Browser Context Menu
options.browser.custom.context.label=Контекстное меню
-options.browser.custom.context.caption=Дополнительные элементы в меню обозревателя при правом щёлке:
+options.browser.custom.context.caption=Дополнительные элементы в меню обозревателя при шелчке правой кнопкой:
#}}}
#{{{ Font selector
@@ -1707,8 +1938,8 @@
#{{{ Plugin options dialog
plugin-options.title=Настройки
-options.plugins.label=Модули
-options.no-plugins.label=Нет настроек модуля
+options.plugins.label=Плагины
+options.no-plugins.label=У плагина нет настроек
#}}}
#{{{ Help viewer
@@ -1716,8 +1947,7 @@
helpviewer.loading=Загрузка...
helpviewer.back.label=Назад
helpviewer.forward.label=Вперёд
-# FIXME: missing translation
-helpviewer.copy-link.label=Copy link to clipboard
+helpviewer.copy-link.label=Копировать ссылку в буфер обмена
helpviewer.toc.loading=Загрузка...
helpviewer.toc.label=Содержание
@@ -1728,8 +1958,8 @@
helpviewer.toc.copying=Всеобщая Публичная Лицензия GNU
helpviewer.toc.copying-doc=Лицензия Свободной Документации GNU
helpviewer.toc.copying-apache=Лицензия Apache
-helpviewer.toc.copying-plugins=Поправка лицензирования модуля
-helpviewer.toc.plugins=Модули
+helpviewer.toc.copying-plugins=Поправка к лицензированию плагинов
+helpviewer.toc.plugins=Плагины
helpviewer.toc.online-apidocs=Спраочник программного интерфейса jEdit (интернет)
helpviewer.search.label=Искать
@@ -1744,37 +1974,37 @@
tip.show-next-time=Показывать советы при старте
tip.next-tip=Следующий совет
-tip.not-found=Директория с документацией/советами не найдена
+tip.not-found=Каталог с документацией/советами не найден
#}}}
#{{{ Activity log
-log-viewer.title=Записи активности
-log-viewer.caption=Полный текст записей сохранён в {0}.
+log-viewer.title=Журнал активности
+log-viewer.caption=Полный текст журнала сохранён в {0}.
log-viewer.copy=Копировать
-log-viewer.tail.label=Окончание
+log-viewer.tail.label=В конец
#}}}
#{{{ Marker Viewer
-view-markers.label=Просмотр закладок($w)
-view-markers.title=Закладки
+view-markers.label=Просмотр меток($w)
+view-markers.title=Метки
#}}}
#{{{ I/O progress monitor
io-progress-monitor.title=Монитор ввода/вывода
io-progress-monitor.caption={0} запросов в ожидании.
-io-progress-monitor.idle=Бездействующий под-процесс
+io-progress-monitor.idle=Бездействующий поток
io-progress-monitor.abort=Прервать
#{{{ I/O abort dialog box
abort.title=Прервать ввод/вывод
-abort.message=Действительно прервать исполняемый запрос ввода/вывода?\n\
+abort.message=Вы уверены, что хотите прервать исполняемый запрос ввода/вывода?\n\
Если вы прервёте запись файла, данные могут быть потеряны.
#}}}
#}}}
#{{{ Task monitor
-task-monitor.title=Обозреватель подпроцессов
+task-monitor.title=Монитор заданий
#}}}
#{{{ VFS browser
@@ -1791,8 +2021,8 @@
vfs.browser.name=Имя
vfs.browser.type=Тип
vfs.browser.type.file=Файл
-vfs.browser.type.directory=Директория
-vfs.browser.type.filesystem=Фаиловая система
+vfs.browser.type.directory=Каталог
+vfs.browser.type.filesystem=Файловая система
vfs.browser.status=Статус
vfs.browser.status.no=Нет доступа
vfs.browser.status.ro=Только чтение
@@ -1801,8 +2031,8 @@
vfs.browser.size=Размер
vfs.browser.modified=Последнее изменение
-vfs.browser.file_filter.glob=Фильтр по шаблону
-vfs.browser.file_filter.dir_only=Только директории
+vfs.browser.file_filter.glob=Шаблон Фильтра файлов
+vfs.browser.file_filter.dir_only=Только каталоги
#{{{ Actions
vfs.browser.browse-window.label=Просмотр в новом окне
@@ -1810,26 +2040,26 @@
vfs.browser.close.label=Закрыть
vfs.browser.copy-path.label=Копия
vfs.browser.delete.label=Удалить...
-vfs.browser.home.label=Домашняя директория
+vfs.browser.home.label=Домашний каталог
vfs.browser.properties.label=Свойства
-vfs.browser.properties.title=Свойства файля/директории
+vfs.browser.properties.title=Свойства файла/каталога
vfs.browser.insert.label=Вставить
-vfs.browser.new-directory.label=Новая директория...
+vfs.browser.new-directory.label=Новый каталог...
vfs.browser.new-file.label=Новый файл
vfs.browser.open.label=Открыть
-vfs.browser.open-desktop.label=Отркыть на Столе($D)
+vfs.browser.open-desktop.label=Открыть на рабочем столе($D)
vfs.browser.other-encoding-2.label=Открыть ({0})...
vfs.browser.other-encoding.label=Ещё...
-vfs.browser.reload.label=Перегрузить директорию
+vfs.browser.reload.label=Перезагрузить каталог
vfs.browser.rename.label=Переименовать...
-vfs.browser.roots.label=Корневая директория
-vfs.browser.search-directory.label=Поиск в директории...
+vfs.browser.roots.label=Корневой каталог
+vfs.browser.search-directory.label=Поиск в каталоге...
vfs.browser.show-hidden-files.label=Показывать скрытые файлы
-vfs.browser.synchronize.label=Директория текущего буфера
-vfs.browser.up.label=Содержащая директория
+vfs.browser.synchronize.label=Каталог текущего буфера
+vfs.browser.up.label=Родительский каталог
vfs.browser.paste.label=Вставить
-vfs.browser.previous.label=Предыдущая директория
-vfs.browser.next.label=Следующая директория
+vfs.browser.previous.label=Предыдущий каталог
+vfs.browser.next.label=Следующий каталог
#}}}
#{{{ Tool bar
@@ -1842,16 +2072,16 @@
vfs.browser.commands.encoding.auto-detect=Авто-определение
vfs.browser.open-in.label=Открыть в
-vfs.browser.open-view.label=Новом виде
-vfs.browser.open-plain-view.label=Новом простом виде
-vfs.browser.open-split.label=Новом под-окне
+vfs.browser.open-view.label=Новом окне
+vfs.browser.open-plain-view.label=Новом упрощенном окне
+vfs.browser.open-split.label=Новой текстовой области
#}}}
#{{{ Plugins menu
-vfs.browser.plugins.label=Модули($P)
-vfs.browser.plugins.plugin-manager.label=Управление модулями...
-vfs.browser.plugins.plugin-options.label=Настройки модуля...
-vfs.browser.plugins.no-plugins.label=Нет модулей
+vfs.browser.plugins.label=Плагины($P)
+vfs.browser.plugins.plugin-manager.label=Менеджер плагинов...
+vfs.browser.plugins.plugin-options.label=Настройки плагинов...
+vfs.browser.plugins.no-plugins.label=Плагины не установлены
#}}}
#{{{ Favorites menu
@@ -1868,62 +2098,62 @@
vfs.browser.dialog.filename.mnemonic=f
#{{{ Dialogs
-vfs.browser.bad-filter.title=Не пригодный фильтр
-vfs.browser.bad-filter.message=Фильтр {0} не пригоден ({1})
+vfs.browser.bad-filter.title=Некорректный фильтр
+vfs.browser.bad-filter.message=Фильтр {0} не является корректным ({1})
-vfs.browser.recurse-favorites.title=Невозможно добавить избранное само в себя
+vfs.browser.recurse-favorites.title=Невозможно добавить из избранного в само себя
vfs.browser.recurse-favorites.message=Список избранного не может быть добавлен сам в себя.
vfs.browser.delete-confirm.title=Подтверждение удаления файла
vfs.browser.delete-confirm.message=Действительно удалить {1}?\n\n\
vfs.browser.delete-favorites.title=Удаление из избранного
-vfs.browser.delete-favorites.message=Действительно удалить следующие файлы из избранного?\n\n\
+vfs.browser.delete-favorites.message=Вы уверены, что хотите удалить следующие файлы из избранного?\n\n\
vfs.browser.rename.title=Переименование файла
vfs.browser.rename.message=Новое имя для {0}:
-vfs.browser.mkdir.title=Новая директория
-vfs.browser.mkdir.message=Имя (или путь) для новой директории:
+vfs.browser.mkdir.title=Новый каталог
+vfs.browser.mkdir.message=Имя (или путь) для нового каталога:
#}}}
#}}}
#{{{ I/O status messages
vfs.status.load=Загрузка {0}
-vfs.status.load-markers=Загрузка закладок для {0}
+vfs.status.load-markers=Загрузка меток для {0}
vfs.status.save=Сохранение {0}
-vfs.status.save-markers=Сохранение закладок для {0}
-vfs.status.autosave=Авто-сохранение {0}
-vfs.status.listing-directory=Чтение {0}
+vfs.status.save-markers=Сохранение меток для {0}
+vfs.status.autosave=Автосохранение {0}
+vfs.status.listing-directory=Чтение каталога {0}
vfs.status.deleting=Удаление {0}
vfs.status.renaming=Переименование {0} в {1}
#}}}
#{{{ Plugin manager
-plugin-manager.title=Управление модулями
+plugin-manager.title=Менеджер плагинов
plugin-manager.hide-libraries=Скрыть библиотеки
plugin-manager.mgr-options=Настройки скачивания...
-plugin-manager.plugin-options=Настройки модуля...
+plugin-manager.plugin-options=Настройки плагинов...
plugin-manager.done=Закрыть
-plugin-manager.remove-confirm.title=Удалить модули
-plugin-manager.remove-confirm.message=Действительно удалить следующие модули?
+plugin-manager.remove-confirm.title=Удалить плагины
+plugin-manager.remove-confirm.message=Вы уверены, что хотите удалить следующие плагины?
-plugin-manager.dependency.title=Зависимость модуля
-plugin-manager.dependency.message={0} требуется для следующих модулей.\n\
- Удаление {0} также удалит следующие модули:
-
-plugin-manager.remove-dependencies.title=Зависимость модуля
-plugin-manager.remove-dependencies.message=Удалённые модули требуются для следующих модулей.\n\
- Их удаление также удалит следующие модули:
+plugin-manager.dependency.title=Зависимость плагина
+plugin-manager.dependency.message={0} требуется для следующих плагинов.\n\
+ Удаление {0} также удалит следующие плагины:
+
+plugin-manager.remove-dependencies.title=Зависимость плагина
+plugin-manager.remove-dependencies.message=Удалённые плагины требуются для следующих плагинов.\n\
+ Их удаление также удалит следующие плагины:
plugin-manager.cleanup.label=Очистка
-plugin-manager.cleanup.title=Очистка данных модуля
-plugin-manager.cleanup.message=Удалить данные следующих модулей:
+plugin-manager.cleanup.title=Очистка данных плагина
+plugin-manager.cleanup.message=Удалить данные следующих плагинов:
plugin-manager.noOrphan.label=Поиск сирот
plugin-manager.noOrphan.title=Осиротевших jar-файлов не найдено
@@ -1931,31 +2161,32 @@
plugin-manager.findOrphan.label=Найти сирот
plugin-manager.findOrphan.title=Найти осиротевщие jar-файлы
-plugin-manager.findOrphan.message=Следующие jar-файлы не принадлежат ни к одному модулю.\n\
- Удалить их?\n (Внимание, они могут динамически грузиться в такие модули \n\
+plugin-manager.findOrphan.message=Следующие jar-файлы не принадлежат ни одному плагину.\n\
+ Удалить их?\n (Внимание, они могут динамически грузиться в такие плагины \n\
как JDBC драйверы):
install-plugins.depend.title=Требуемая зависимость
-install-plugins.depend.message=Один из устанавливаемых модулей требует \n\
- дополнительных модулей, которые будут установлены автоматически, в случае \n\
+install-plugins.depend.message=Один из устанавливаемых плагинов требует \n\
+ дополнительных плагинов, которые будут установлены автоматически, в случае \n\
если Вы решите продолжить.
plugin-manager.status.loaded=Загружен
+plugin-manager.status.disabled=Не поддерживается
plugin-manager.status.not-loaded=Не загружен
plugin-manager.status.error=Ошибка
plugin-manager.list-download-connect=Соединение с plugins.jedit.org
-plugin-manager.list-download=Скачивается список модулей с plugins.jedit.org
-plugin-manager.list-download.need-password.title=Прокси HTTP требует пароль
-plugin-manager.list-download.need-password.message=Прокси HTTP требует пароль.\n\
-Пожалуйста введите имя и пароль в "Настройках скачивания".
-plugin-manager.list-download.disconnected.title=Ошибка скачивания списка модулей
-plugin-manager.list-download.disconnected.message=Невозможно скачать список модулей:\n\
-сервер {0} недоступен. Проверте Ваше соединение...
-plugin-manager.list-download.generic-error.title=Ошибка скачивания списка модулей
-plugin-manager.list-download.generic-error.message=Ошибка скачивания списка модулей:\n\
+plugin-manager.list-download=Скачивается список плагинов с plugins.jedit.org
+plugin-manager.list-download.need-password.title=HTTP-прокси требует пароль
+plugin-manager.list-download.need-password.message=HTTP-прокси требует пароль.\n\
+Пожалуйста задайте имя и пароль в "Настройках скачивания".
+plugin-manager.list-download.disconnected.title=Ошибка скачивания списка плагинов
+plugin-manager.list-download.disconnected.message=Невозможно скачать список плагинов:\n\
+сервер {0} недоступен. Проверьте Ваше соединение...
+plugin-manager.list-download.generic-error.title=Ошибка скачивания списка плагинов
+plugin-manager.list-download.generic-error.message=Ошибка скачивания списка плагинов:\n\
{0} - {1}
-plugin-manager.filterField=Показывать только модули с именем, содержащим следующий текст
+plugin-manager.filterField=Показывать только плагины с именем, содержащим следующий текст
#{{{ Plugin management
manage-plugins.title=Управление
@@ -1969,38 +2200,37 @@
manage-plugins.remove=Удалить...
manage-plugins.help=Помощь...
-plugin-load-error.message=Невозможно загрузить модуль
-plugin-load-error.title=Ошибка при загрузке модуля
+plugin-load-error.message=Невозможно загрузить плагин
+plugin-load-error.title=Ошибка загрузки плагина
#}}}
#{{{ Plugin installation
-install-plugins.title=Добавление
+install-plugins.title=Установка
install-plugins.info.name=Имя
install-plugins.info.size=Размер
install-plugins.info.releaseDate=Дата выпуска
install-plugins.info.version=Версия
install-plugins.info.category=Категория
+install-plugins.info.author=Автор
+install-plugins.info.released=Выпущен
+install-plugins.info.depends=Зависит от
-install-plugins.totalSize=Всего модулей: {0}, размер: {1}
+install-plugins.totalSize=Всего плагинов: {0}, размер: {1}
install-plugins.select-all=Выбрать все
install-plugins.install=Установить
install-plugins.show-updates=Показать обновления
-install-plugins.info=Автор : {0}\n\
- Выпущен : {1}\n\
- {2}
-
update-plugins.title=Обновление
plugin-manager.progress=Скачивается {0} с зеркала {1}
-plugin-manager.progress.title=Установка модулей
-plugin-manager.progress.stop=Стоп
+plugin-manager.progress.title=Установка плагинов
+plugin-manager.progress.stop=Остановить
#}}}
#{{{ Plugin remove error
-plugin-manager.remove-failed.title=Удаление не успешно
-plugin-manager.remove-failed.message=Модуль {0}\n\
+plugin-manager.remove-failed.title=Не получилось удалить
+plugin-manager.remove-failed.message=Плагин {0}\n\
не может быть удалён.
#}}}
@@ -2018,23 +2248,24 @@
fileprop.okBtn=OK
fileprop.cancelBtn=Отмена
fileprop.selectedFiles=Выбранные файлы
-fileprop.selectedDirectories=Выбранные директории
+fileprop.selectedDirectories=Выбранные каталоги
#}}}
#{{{ Activity log viewer
-log-viewer.dialog.title=Настройки записи активности
+log-viewer.dialog.title=Настройки журнала активности
log-viewer.settings.label=Настройки
log-viewer.message.label=Вид сообщений:
log-viewer.message.debug.label=Отладка
log-viewer.message.message.label=Сообщение
-log-viewer.message.notice.label=Объявление
-log-viewer.message.warning.label=Преддупреждение
+log-viewer.message.notice.label=Уведомление
+log-viewer.message.warning.label=Предупреждение
log-viewer.message.error.label=Ошибка
+debug.beepOnOutput.label=Звуковой сигнал при выводе
#}}}
logs-remove-all-errors.label=Удалить все ошибки
-taskmanager.remainingtasks.label=Оствщиеся задания: {0}
+taskmanager.remainingtasks.label=Осталось заданий: {0}
#{{{ Statusbar Widgets
# the widgets should have a label and a sample.
@@ -2053,7 +2284,7 @@
statusbar.indent.sample=F
statusbar.multiSelect.label=Режим множественного выделения (например:m)
statusbar.multiSelect.sample=m
-statusbar.rectSelect.label=Режим прамоуголььного выделения (например:r)
+statusbar.rectSelect.label=Режим прямоугольного выделения (например:r)
statusbar.rectSelect.sample=r
statusbar.overwrite.label=Режим вставки (например:o)
statusbar.overwrite.sample=o
@@ -2069,13 +2300,13 @@
statusbar.selection-length.sample=192
statusbar.last-modified.label=Дата последнего изменения на диске (например:12/03/11 16:43)
statusbar.last-modified.sample=12/03/11 16:43
-statusbar.task-monitor.label=Под-процессы (например: 7 проц.)
-statusbar.task-monitor.tooltip=Щёлкните для окна со списком под-процессов
-statusbar.task-monitor.sample=7 проц.
-statusbar.task-monitor.template={0} проц.
+statusbar.task-monitor.label=Монитор заданий (например: 7 заданий)
+statusbar.task-monitor.tooltip=Щёлкните чтобы увидеть выполняющиеся задания в доке
+statusbar.task-monitor.sample=7 заданий
+statusbar.task-monitor.template={0} заданий
#}}}
-killring.load-memoryerror.message=Невозможно загрузить прежде удалённый текст. Пожалуйста увеличте выделенную память. \
+killring.load-memoryerror.message=Невозможно загрузить прежде удалённый текст. Пожалуйста, увеличьте выделенную память. \
Нажмите старт для запуска jEdit, или стоп что отменить запуск и изменить настройки. Также можно удалить файл истории и запустить jEdit
killring.load-memoryerror.title=Ошибка памяти
killring.start=старт
@@ -2089,8 +2320,8 @@
#{{{ Properties used by macros
#{{{ common
-macro.rs.general.ErrorNotEditableDialog.title=Разрешение записи
-macro.rs.general.ErrorNotEditableDialog.message=Буфер неизменяем!
+macro.rs.general.ErrorNotEditableDialog.title=Права на запись
+macro.rs.general.ErrorNotEditableDialog.message=Буфер нельзя редактировать!
#}}}
#{{{ Clipboard
@@ -2110,11 +2341,14 @@
#{{{ Editing
#{{{ Go to column
-macro.rs.GoToColumn.label=Столбец (межды 1 и {0}):
+macro.rs.GoToColumn.label=Столбец (между 1 и {0}):
#}}}
+# Go To Offset
+macro.rs.GoToOffset.label=Смещение (между 0 и {0}):
+
#{{{ Key Words to Uppercase
-macro.rs.KeywordsToUpperCase.ConvertedKeywords.message=Преобразовано слво верхний регистр
+macro.rs.KeywordsToUpperCase.ConvertedKeywords.message=Преобразовано в верхний регистр
#}}}
#{{{ Mode Switcher
@@ -2135,18 +2369,18 @@
#{{{ Files
#{{{ Browse Directory
-macro.rs.BrowseDirectory.DirectoryBrowse.label=Показывать директорию:
+macro.rs.BrowseDirectory.DirectoryBrowse.label=Показывать каталог:
#}}}
#{{{ Buffer Switcher
macro.rs.BufferSwitcher.OpenBuffers.label=открытые буферы
macro.rs.BufferSwitcher.QuickHelp.label=[ENTER] активировать; [SPACE] активировать, продолжать диалог; [DEL] Закрыть диалог
-macro.rs.BufferSwitcher.Help1.label=Помощь для макро-команды "Переключатель буферов":
+macro.rs.BufferSwitcher.Help1.label=Помощь для макроса "Переключатель буферов":
macro.rs.BufferSwitcher.Help2.label=DELETE закрывает выбранный буфер.
macro.rs.BufferSwitcher.Help3.label=ENTER активирует выбранный буфер, закрывает диалог.
macro.rs.BufferSwitcher.Help4.label=ESCAPE закрывает диалог.
macro.rs.BufferSwitcher.Help5.label=SPACE активирует выбранный буфер, не закрывает диалог.
-macro.rs.BufferSwitcher.Help6.label=Внимание: Этот диалог будет показан только однажды
+macro.rs.BufferSwitcher.Help6.label=Внимание: Этот диалог будет показан только один раз
#}}}
#{{{ Delete Current
@@ -2156,12 +2390,12 @@
#}}}
#{{{ Glob Close
-macro.rs.GlobClose.GlobPattern.label=Шаблон:
+macro.rs.GlobClose.GlobPattern.label=Шаблон (например *.txt or /usr/include/*):
macro.rs.GlobClose.ErrorGlobPattern.error=Ошибка в шаблоне:
#}}}
#{{{ Next Dirty Buffer
-macro.rs.NextDirtyBuffer.NoOtherBufferDirty.message=Нет других измненённых буферов
+macro.rs.NextDirtyBuffer.NoOtherBufferDirty.message=Нет других изменённых буферов
macro.rs.NextDirtyBuffer.NoBufferDirty.message=Нет изменённых буферов
#}}}
@@ -2170,8 +2404,8 @@
#}}}
#{{{Toggle ReadOnly
-macro.rs.ToggleReadOnly.OnlyLocalFiles.error=Это макро работает только с локальными файлами.
-macro.rs.ToggleReadOnly.OnlyWindowsUnixMacos.error=Это макро работает только с Windows, Unix, & MacOS X.
+macro.rs.ToggleReadOnly.OnlyLocalFiles.error=Этот макрос работает только с локальными файлами.
+macro.rs.ToggleReadOnly.OnlyWindowsUnixMacos.error=Этот макрос работает только с Windows, Unix и MacOS X.
#}}}
#}}}
@@ -2187,12 +2421,12 @@
#{{{ Java
#{{{ Create Constructor
-macro.rs.CreateConstructor.UnevenNumber.message=Неровное количество типов имён и переменных.
+macro.rs.CreateConstructor.UnevenNumber.message=Несоответствующее количество имён типов и переменных.
#}}}
#{{{ Get Package Name
-macro.rs.GetPackageName.NotWorking1.error=Эта макро-команда не работает когда интерпретатор Java
-macro.rs.GetPackageName.NotWorking2.error=загрузил jEdit с помощью '-jar' опции командной строки.
+macro.rs.GetPackageName.NotWorking1.error=Этот макрос не работает когда интерпретатор Java
+macro.rs.GetPackageName.NotWorking2.error=загружает jEdit с параметром '-jar'.
macro.rs.GetPackageName.NotFind.error=Не найдено имя пакета.
#}}}
@@ -2201,10 +2435,10 @@
#}}}
#{{{Make Get and Set Methods
-macro.rs.MakeGetAndSetMethods.GenerateCode.label=Генерироватьь код
-macro.rs.MakeGetAndSetMethods.CreateGetMethods.label=Создать методы доступа (Get)
-macro.rs.MakeGetAndSetMethods.CreateSetMethods.label=Создать методы изменения (Set)
-macro.rs.MakeGetAndSetMethods.CreateGetandSetMethods.label=Sozdat= metody Get i Set
+macro.rs.MakeGetAndSetMethods.GenerateCode.label=Сгенерировать код
+macro.rs.MakeGetAndSetMethods.CreateGetMethods.label=Создать геттеры
+macro.rs.MakeGetAndSetMethods.CreateSetMethods.label=Создать сеттеры
+macro.rs.MakeGetAndSetMethods.CreateGetandSetMethods.label=Создать геттеры и сеттеры
#}}}
#}}}
@@ -2212,8 +2446,8 @@
#{{{ Misc
#{{{ Buffer to HyperSearch Results - HyperSearch Results to Buffer
-macro.rs.HyperSearchResults.WindowNotOpen.error=Окно "Результаты глобльного поиска" не открыто.
-macro.rs.HyperSearchResults.NotMatch.error=Нет результов глобального ппоиска.
+macro.rs.HyperSearchResults.WindowNotOpen.error=Окно "Результаты гипер-поиска" не открыто.
+macro.rs.HyperSearchResults.NotMatch.error=Нет результов глобального поиска.
#}}}
#{{{ Debug BufferSets
@@ -2234,10 +2468,10 @@
macro.rs.DisplayAbbreviations.AbbreviationList.label=Список сокращений
macro.rs.DisplayAbbreviations.CallingWTTNB.label=вызов writeTableToNewBuffer для
macro.rs.DisplayAbbreviations.SizeVector.label=размер вектора:
-macro.rs.DisplayAbbreviations.jEditAbbreviationTable.label=jEdit Abbreviation Table
-macro.rs.DisplayAbbreviations.AbbreviationSet.label=Abbreviation set:
-macro.rs.DisplayAbbreviations.AbbreviationExpansion.label=Abbreviation Expansion
-macro.rs.DisplayAbbreviations.NoAbbreviations.label=<< No abbreviations >>
+macro.rs.DisplayAbbreviations.jEditAbbreviationTable.label=Таблица сокращений jEdit
+macro.rs.DisplayAbbreviations.AbbreviationSet.label=Набор сокращений:
+macro.rs.DisplayAbbreviations.AbbreviationExpansion.label=Разворачивание сокращения
+macro.rs.DisplayAbbreviations.NoAbbreviations.label=<< Нет сокращений >>
#}}}
#{{{ Display Actions
@@ -2247,7 +2481,7 @@
#}}}
#{{{ Display Character Code
-macro.rs.DisplayCharacterCode.CharacterAtCaret.label=Символ под кареткой:
+macro.rs.DisplayCharacterCode.CharacterAtCaret.label=Символ под курсором:
#}}}
#{{{ Display Shorcuts
@@ -2258,8 +2492,6 @@
macro.rs.DisplayShortcuts.Close.label=Close
macro.rs.DisplayShortcuts.WriteToBuffer.label=Write to buffer
macro.rs.DisplayShortcuts.ShortcutList.label=Keyboard shortcut list
-macro.rs.DisplayShortcuts.Center.label=Center
-macro.rs.DisplayShortcuts.South.label=South
#}}}
#{{{ Hex Convert
@@ -2272,11 +2504,6 @@
#{{{ Make Bug Report
macro.rs.MakeBugReport.OpeningActivityLog.error=Error opening Activity Log.
macro.rs.MakeBugReport.UsefulEntriesForReport.label=Activity log entries that might be useful in a bug report:\n\n.
-macro.rs.MakeBugReport.MessagejEdit.label=[message] jEdit:
-macro.rs.MakeBugReport.NoticejEdit.label=[notice] jEdit:
-macro.rs.MakeBugReport.NoticeJarClassLoader.label=[notice] JARClassLoader:
-macro.rs.MakeBugReport.MessagejEditStartupComplete.label=[message] jEdit: Startup complete
-macro.rs.MakeBugReport.Error.label=[error]
macro.rs.MakeBugReport.ReadingActivityLog.error=Error reading Activity Log
#}}}
@@ -2329,11 +2556,11 @@
#}}}
#{{{ Insert Date
-macro.rs.InsertDate.InternetTime.label=Internet Time
+macro.rs.InsertDate.InternetTime.label=Время Интернета
#}}}
#{{{ Insert Tag
-macro.rs.InsertTag.EnterNameTag.label=Enter name of tag:
+macro.rs.InsertTag.EnterNameTag.label=Введите название тега:
#}}}
#{{{ Line_Filter
@@ -2354,8 +2581,8 @@
macro.rs.LineFilter.SummaryDeleted.label=Строки удалены!
macro.rs.LineFilter.SummaryWritten.label=Строки записаны в новый буфер.
-macro.rs.LineFilter.ErrorRegexpDialog.title=Не годное регулярное выражение
-macro.rs.LineFilter.ErrorRegexpDialog.message=Негодное регулярное выражение!
+macro.rs.LineFilter.ErrorRegexpDialog.title=Неверное регулярное выражение
+macro.rs.LineFilter.ErrorRegexpDialog.message=Неверное регулярное выражение!
#}}}
#{{{ Next Char
@@ -2363,7 +2590,7 @@
#}}}
#{{{ Reverse Lines
-macro.rs.ReverseLines.NotWorkingRectangularSelection.error=Эта макро-команда не работает с прямоугольным вуделением.
+macro.rs.ReverseLines.NotWorkingRectangularSelection.error=Этот макрос не работает с прямоугольным выделением.
#}}}
#{{{ Single Space Buffer
@@ -2389,7 +2616,7 @@
macros.folder.Clipboard.label=Буфер обмена
Clipboard/Copy_Lines.label=Копировать строки
-Clipboard/Copy_Lines_Containing.label=Копироватьь строки содержащие
+Clipboard/Copy_Lines_Containing.label=Копировать строки содержащие
Clipboard/Copy_Visible_Lines.label=Копировать видимые строки
Clipboard/Cut_Lines.label=Вырезать строки
Clipboard/Cut_Lines_Containing.label=Вырезать строки содержащие
@@ -2399,42 +2626,64 @@
#{{{ Editing
macros.folder.Editing.label=Редактировать
-Editing/Duplicate_Lines_Above.label=Дублировать строки наверху
-Editing/Duplicate_Lines_Below.label=Дублировать строки внизу
-Editing/Emacs_Ctrl-K.label=Emacs Ctrl-K
-Editing/Emacs_Next_Line.label=Emacs Next Line
-Editing/Emacs_Previous_Line.label=Emacs Previous Line
+Editing/Duplicate_Lines_Above.label=Дублировать строки сверху
+Editing/Duplicate_Lines_Below.label=Дублировать строки снизу
Editing/Go_to_Column.label=Перейти к столбцу
Editing/Greedy_Backspace.label=Жадно Backspace
Editing/Greedy_Delete.label=Жадно Delete
Editing/Greedy_Left.label=Жадно Влево
Editing/Greedy_Right.label=Жадно Вправо
-Editing/Keywords_to_Upper_Case.label=Keywords to Upper Case
+Editing/Keywords_to_Upper_Case.label=Ключевые слова в верхний регистр
Editing/Mode_Switcher.label=Переключатель режима
Editing/Move_Lines_Down.label=Передвинуть строки вверх
Editing/Move_Lines_Up.label=Передвинуть строки вниз
Editing/Open_Line_Above.label=Открыть строку сверху
Editing/Open_Line_Below.label=Открыть строку снизу
-Editing/Toggle_Fold.label=Переключитьь свёртку
+Editing/Toggle_Fold.label=Переключить свёртку
+#}}}
+
+#{{{ Emacs
+macros.folder.Emacs.label=Emacs
+Emacs/Emacs_Align_Decls.label=Emacs Align Decls
+Emacs/Emacs_Backward_Sentence.label=Emacs Backward Sentence
+Emacs/Emacs_Capitalize_Word.label=Emacs Capitalize Word
+Emacs/Emacs_Center_Line.label=Emacs Center Line
+Emacs/Emacs_Ctrl-K.label=Emacs Ctrl-K
+Emacs/Emacs_Downcase_Word.label=Emacs Downcase Word
+Emacs/Emacs_Exchange_Point_and_Mark.label=Emacs Exchange Point and Mark
+Emacs/Emacs_Fixup_Whitespace.label=Emacs Fixup Whitespace
+Emacs/Emacs_Forward_Sentence.label=Emacs Forward Sentence
+Emacs/Emacs_Insert_File.label=Emacs Insert File
+Emacs/Emacs_Kill_Line.label=Emacs Kill Line
+Emacs/Emacs_Kill_Region.label=Emacs Kill Region
+Emacs/Emacs_Kill_Ring_Save.label=Emacs Kill Ring Save
+Emacs/Emacs_Kill_Sentence.label=Emacs Kill Sentence
+Emacs/Emacs_Next_Line.label=Emacs Next Line
+Emacs/Emacs_Open_Line.label=Emacs Open Line
+Emacs/Emacs_Previous_Line.label=Emacs Previous Line
+Emacs/Emacs_Set_Mark.label=Emacs Set Mark
+Emacs/Emacs_Set_Wrap.label=Emacs Set Wrap
+Emacs/Emacs_Transpose_Chars.label=Emacs Transpose Chars
+Emacs/Emacs_Transpose_Lines.label=Emacs Transpose Lines
+Emacs/Emacs_Upcase_Word.label=Emacs Upcase Word
#}}}
#{{{ Files
macros.folder.Files.label=Файлы
-Files/Browse_Buffer_Directory.label=Показать директорию буфера
-Files/Browse_Directory.label=Показать Директорию
-Files/Buffer_Switcher.label=Переключатель Буфера
-Files/Close_All_Except_Active.label=Закрыть все кроме активного
+Files/Browse_Buffer_Directory.label=Показать каталог буфера
+Files/Browse_Directory.label=Показать Каталог
+Files/Buffer_Switcher.label=Переключатель буфера
Files/Copy_Name_to_Clipboard.label=Копировать имя в буфер обмена
Files/Copy_Path_to_Clipboard.label=Копировать путь в буфер обмена
Files/Delete_Current.label=Удалить текущий
Files/Duplicate_Buffer.label=Дублировать буфер
Files/Glob_Close.label=Закрыть по шаблону
-Files/Insert_Selection.label=Вставить Выбор
+Files/Insert_Selection.label=Вставить выделение
Files/Next_Dirty_Buffer.label=Следующий изменённый буфер
Files/Open_Path.label=Открыть путь
-Files/Open_Selection.label=Открыть выбор
-Files/Send_Buffer_To_Next_Split.label=Переслть буфер в следующее под-окно
+Files/Open_Selection.label=Открыть выделение
+Files/Send_Buffer_To_Next_Split.label=Отправить буфер в следующую область
Files/Toggle_ReadOnly.label=Переключить "Только для Чтения"
#}}}
@@ -2444,8 +2693,8 @@
Interface/Decrease_Font_Size.label=Уменьшить размер шрифта
Interface/Increase_Font_Size.label=Увеличить размер шрифта
Interface/Open_Context_Menu.label=Открыть контекстное меню
-Interface/Reset_TextArea.label=Очистить Текстовую область
-Interface/Splitpane_Grow.label=Ивеличить разделение
+Interface/Reset_TextArea.label=Сбросить текстовую область
+Interface/Splitpane_Grow.label=Расширить текстовую область
Interface/Toggle_Bottom_Docking_Area.label=Переключить нижний док
Interface/Toggle_Left_Docking_Area.label=Переключить левый док
Interface/Toggle_Right_Docking_Area.label=Переключить правый док
@@ -2466,28 +2715,28 @@
#{{{ Misc
macros.folder.Misc.label=Разное
-Misc/Buffer_to_HyperSearch_Results.label=Буффер в глобальный поиск
-Misc/Debug_BufferSets.label=Отладка наборов буферров
+Misc/Buffer_to_HyperSearch_Results.label=Буфер в результаты гипер-поиска
+Misc/Debug_BufferSets.label=Отладка наборов буферов
Misc/Display_Abbreviations.label=Показать сокращения
-Misc/Display_Actions.label=Показатьь действия
+Misc/Display_Actions.label=Показать действия
Misc/Display_Character_Code.label=Показать код символа
-Misc/Display_Shortcuts.label=Показать клавиши
+Misc/Display_Shortcuts.label=Показать комбинации клавиш
Misc/Evaluate_Buffer_in_BeanShell.label=Выполнить BeanShell из буфера
Misc/Hex_Convert.label=Hex Convert
-Misc/HyperSearch_Results_to_Buffer.label=Глобальнйи поиск в буфер
-Misc/Make_Bug_Report.label=Make Bug Report
-Misc/Run_Script.label=Run Script
-Misc/Show_Threads.label=Show Threads
+Misc/HyperSearch_Results_to_Buffer.label=Результаты гипер-поиска в буфер
+Misc/Make_Bug_Report.label=Создать отчет об ошибках
+Misc/Run_Script.label=Запустить скрипт
+Misc/Show_Threads.label=Показать потоки
#}}}
#{{{ Properties
macros.folder.Properties.label=Свойства
Properties/Create_Plugin_Announcement.label=Create Plugin Announcement
-Properties/Insert_Buffer_Properties.label=Insert Buffer Properties
+Properties/Insert_Buffer_Properties.label=Вставить свойства буфера
Properties/jEdit_Properties.label=Свойства jEdit
-Properties/Look_and_Feel_Properties.label=Look and Feel Properties
-Properties/System_Properties.label=свойства системы
+Properties/Look_and_Feel_Properties.label=Свойства Look and Feel
+Properties/System_Properties.label=Свойства системы
#}}}
#{{{ Text
@@ -2495,13 +2744,14 @@
Text/Add_Prefix_and_Suffix.label=Добавить префикс и суффикс
Text/Color_Picker.label=Выбор цвета
-Text/Compose_Tag.label=Compose Tag
+Text/Compose_Tag.label=Составить тег
Text/Duplicate_Line.label=Дублировать строку
Text/Insert_Date.label=Вставить дату
-Text/Insert_Tag.label=Insert Tag
+Text/Insert_Tag.label=Вставить тег
Text/Line_Filter.label=Фильтр строк
Text/Next_Char.label=Следующий символ
-Text/Reverse_Lines.label=Обратить порядок строк
+Text/Reverse_Lines.label=Развернуть строки
+Text/Reverse_Selection.label=Развернуть выделение
Text/Single_Space_Buffer.label=Буфер в один интервал
#}}}
diff -Nru jedit-5.4.0+dfsg/org/jedit/localization/jedit_zh.props jedit-5.5.0+dfsg/org/jedit/localization/jedit_zh.props
--- jedit-5.4.0+dfsg/org/jedit/localization/jedit_zh.props 2017-03-18 13:30:24.000000000 +0000
+++ jedit-5.5.0+dfsg/org/jedit/localization/jedit_zh.props 2018-04-08 23:58:42.000000000 +0000
@@ -52,7 +52,6 @@
action-set.plugin=插件: {0}
macro-handler.beanshell.label=BeanShell 脚本
-macro-handler.beanshell.glob=*.bsh
save-layout-failed.message=无法保存对接布局.
load-layout.title=加载对接布局
@@ -964,8 +963,8 @@
#{{{ "Search in selection" active but nothing selected in text area
search-no-selection.title=没有选择任何内容
-search-no-selection.message=选择一些文字或停用
-"在选择范围内搜索"选项.
+search-no-selection.message=选择一些文字或停用\n\
+ "在选择范围内搜索"选项.
#}}}
#{{{ Paste previous and paste deleted dialogs
@@ -1467,7 +1466,6 @@
options.save-back.confirmSaveAll=“保存全部内容“要求进行确认
options.save-back.autosaveUntitled=自动保存未命名的内容
options.save-back.suppressNotSavedConfirmUntitled=不给未命名内容标记未混乱文件.
-options.save-back.suppressNotSavedConfirmUntitled.tooltip=检查这意味着每当创建一个新的内容,未命名的内容就被删除(它是一个功能!)
options.save-back.useMD5forDirtyCalculation=如果内容未改变,不标注内容紊乱.
options.save-back.useMD5forDirtyCalculation.tooltip=在加载时比较内容长度以及MD5哈希值, 以判断已编辑的内容是否仍然混乱.
options.save-back.saveAsUsesFSB=“另存为”默认到文件系统浏览器目录
@@ -1977,17 +1975,15 @@
install-plugins.info.size=大小
install-plugins.info.releaseDate=发布日期
install-plugins.info.version=版本
-install-plugins.info.category类别
+install-plugins.info.category=类别
+install-plugins.info.author=作者
+install-plugins.info.released=发布了
install-plugins.totalSize={0} 个插件), 总大小: {1}
install-plugins.select-all=全选
install-plugins.install=安装
install-plugins.show-updates=显示更新
-install-plugins.info=作者 : {0}\n\
- 发布了 : {1}\n\
- {2}
-
update-plugins.title=更新
plugin-manager.progress=正在从 {1}下载 {0}
@@ -2258,8 +2254,6 @@
macro.rs.DisplayShortcuts.Close.label=关闭
macro.rs.DisplayShortcuts.WriteToBuffer.label=写入到内容
macro.rs.DisplayShortcuts.ShortcutList.label=键盘快捷键列表
-macro.rs.DisplayShortcuts.Center.label=中心
-macro.rs.DisplayShortcuts.South.label=南部
#}}}
#{{{ Hex Convert
@@ -2272,12 +2266,7 @@
#{{{ Make Bug Report
macro.rs.MakeBugReport.OpeningActivityLog.error=打开活动日志错误.
macro.rs.MakeBugReport.UsefulEntriesForReport.label=活动日志条目在bug报告里可能是有用的:\n\n.
-macro.rs.MakeBugReport.MessagejEdit.label=[message] jEdit:
-macro.rs.MakeBugReport.NoticejEdit.label=[notice] jEdit:
-macro.rs.MakeBugReport.NoticeJarClassLoader.label=[notice] JARClassLoader:
-macro.rs.MakeBugReport.MessagejEditStartupComplete.label=[message] jEdit: 完成启动
-macro.rs.MakeBugReport.Error.label=[error]
-macro.rs.MakeBugReport.ReadingActivityLog.error=阅读活动日志错误
+macro.rs.MakeBugReport.ReadingActivityLog.error=阅读活动日志错误.
#}}}
#{{{ Run Script
@@ -2435,7 +2424,7 @@
Emacs/Emacs_Open_Line.label=Emacs 打开行
Emacs/Emacs_Previous_Line.label=Emacs 前一行
Emacs/Emacs_Set_Mark.label=Emacs 设置标记
-Emacs/Emacs_Set_Wrap=Emacs 设置自动换行
+Emacs/Emacs_Set_Wrap.label=Emacs 设置自动换行
Emacs/Emacs_Transpose_Chars.label=Emacs 转置字符
Emacs/Emacs_Transpose_Lines.label=Emacs 转置行
Emacs/Emacs_Upcase_Word.label=Emacs 单词大写
@@ -2447,7 +2436,6 @@
Files/Browse_Buffer_Directory.label=浏览内容目录
Files/Browse_Directory.label=浏览目录
Files/Buffer_Switcher.label=内容开关
-Files/Close_All_Except_Active.label=关闭除活动区外所有内容
Files/Copy_Name_to_Clipboard.label=复制内容到粘贴板
Files/Copy_Path_to_Clipboard.label=复制路径到粘贴板
Files/Delete_Current.label=删除当前