ReText-5.3.1/0000755000175000017500000000000012701277415013603 5ustar dmitrydmitry00000000000000ReText-5.3.1/ReText/0000755000175000017500000000000012701277415015016 5ustar dmitrydmitry00000000000000ReText-5.3.1/ReText/__init__.py0000644000175000017500000001023512701277312017124 0ustar dmitrydmitry00000000000000# This file is part of ReText # Copyright: 2012-2014 Dmitry Shachnev # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . import markups import markups.common from os.path import dirname, exists, join from PyQt5.QtCore import QByteArray, QLocale, QSettings, QStandardPaths from PyQt5.QtGui import QFont app_version = "5.3.1" settings = QSettings('ReText project', 'ReText') print('Using configuration file:', settings.fileName()) if not str(settings.fileName()).endswith('.conf'): # We are on Windows probably settings = QSettings(QSettings.IniFormat, QSettings.UserScope, 'ReText project', 'ReText') try: import enchant import enchant.errors except ImportError: enchant_available = False enchant = None else: enchant_available = True try: enchant.Dict() except enchant.errors.Error: enchant_available = False datadirs = QStandardPaths.standardLocations(QStandardPaths.GenericDataLocation) datadirs = [join(d, 'retext') for d in datadirs] if '__file__' in locals(): datadirs = [dirname(dirname(__file__))] + datadirs icon_path = 'icons/' for dir in datadirs: if exists(join(dir, 'icons')): icon_path = join(dir, 'icons/') break configOptions = { 'appStyleSheet': '', 'autoSave': False, 'defaultCodec': '', 'defaultMarkup': '', 'editorFont': QFont('monospace'), 'font': QFont(), 'handleWebLinks': False, 'hideToolBar': False, 'highlightCurrentLine': False, 'iconTheme': '', 'lineNumbersEnabled': False, 'livePreviewByDefault': False, 'markdownDefaultFileExtension': '.mkd', 'pygmentsStyle': 'default', 'restDefaultFileExtension': '.rst', 'rightMargin': 0, 'saveWindowGeometry': False, 'spellCheck': False, 'spellCheckLocale': '', 'styleSheet': '', 'tabInsertsSpaces': True, 'tabWidth': 4, 'uiLanguage': QLocale.system().name(), 'useFakeVim': False, 'useWebKit': False, 'windowGeometry': QByteArray(), } def readFromSettings(key, keytype, settings=settings, default=None): if isinstance(default, QFont): family = readFromSettings(key, str, settings, default.family()) size = readFromSettings(key + 'Size', int, settings, 0) return QFont(family, size) if not settings.contains(key): return default try: value = settings.value(key, type=keytype) if isinstance(value, keytype): return value return keytype(value) except TypeError as error: # Type mismatch print('Warning: '+str(error)) # Return an instance of keytype return default if (default is not None) else keytype() def readListFromSettings(key, settings=settings): if not settings.contains(key): return [] value = settings.value(key) if isinstance(value, str): return [value] else: return value def writeToSettings(key, value, default, settings=settings): if isinstance(value, QFont): writeToSettings(key, value.family(), '', settings) writeToSettings(key + 'Size', max(value.pointSize(), 0), 0, settings) elif value == default: settings.remove(key) else: settings.setValue(key, value) def writeListToSettings(key, value, settings=settings): if len(value) > 1: settings.setValue(key, value) elif len(value) == 1: settings.setValue(key, value[0]) else: settings.remove(key) class ReTextSettings(object): def __init__(self): for option in configOptions: value = configOptions[option] object.__setattr__(self, option, readFromSettings( option, type(value), default=value)) def __setattr__(self, option, value): if not option in configOptions: raise AttributeError('Unknown attribute') object.__setattr__(self, option, value) writeToSettings(option, value, configOptions[option]) globalSettings = ReTextSettings() markups.common.PYGMENTS_STYLE = globalSettings.pygmentsStyle ReText-5.3.1/ReText/fakevimeditor.py0000644000175000017500000002120512700242644020214 0ustar dmitrydmitry00000000000000# This file is part of ReText # Copyright: 2014 Lukas Holecek # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . from FakeVim import FakeVimProxy, FakeVimHandler, FAKEVIM_PYQT_VERSION, \ MessageError if FAKEVIM_PYQT_VERSION != 5: raise ImportError("FakeVim must be compiled with Qt 5") from PyQt5.QtCore import QDir, QRegExp, QObject, Qt from PyQt5.QtGui import QPainter, QPen, QTextCursor from PyQt5.QtWidgets import QWidget, QLabel, QLineEdit, \ QMessageBox, QStatusBar, QTextEdit class FakeVimMode: @staticmethod def init(window): window.setStatusBar(StatusBar()) @staticmethod def exit(window): window.statusBar().deleteLater() class Proxy (FakeVimProxy): """ Used by FakeVim to modify or retrieve editor state. """ def __init__(self, window, editor, handler): super(Proxy, self).__init__(handler.handler()) self.__handler = handler self.__window = window self.__editor = editor self.__statusMessage = "" self.__statusData = "" self.__cursorPosition = -1 self.__cursorAnchor = -1 self.__eventFilter = None self.__lastSavePath = "" def showMessage(self, messageLevel, message): self.__handler.handler().showMessage(messageLevel, message) def needSave(self): return self.__editor.document().isModified() def maybeCloseEditor(self): if self.needSave(): self.showMessage( MessageError, self.tr("No write since last change (add ! to override)") ) self.__updateStatusBar() return False return True def commandQuit(self): self.__handler.quit() def commandWrite(self): self.__handler.save() return not self.needSave() def handleExCommand(self, cmd): if cmd.matches("q", "quit"): if cmd.hasBang or self.maybeCloseEditor(): self.commandQuit() elif cmd.matches("w", "write"): self.commandWrite() elif cmd.cmd == "wq": self.commandWrite() and self.commandQuit() else: return False return True def enableBlockSelection(self, cursor): self.__handler.setBlockSelection(True) self.__editor.setTextCursor(cursor) def disableBlockSelection(self): self.__handler.setBlockSelection(False) def blockSelection(self): self.__handler.setBlockSelection(True) return self.__editor.textCursor() def hasBlockSelection(self): return self.__editor.hasBlockSelection() def commandBufferChanged(self, msg, cursorPosition, cursorAnchor, messageLevel, eventFilter): # Give focus back to editor if closing command line. if self.__cursorPosition != -1 and cursorPosition == -1: self.__editor.setFocus() self.__cursorPosition = cursorPosition self.__cursorAnchor = cursorAnchor self.__statusMessage = msg self.__updateStatusBar(); self.__eventFilter = eventFilter def statusDataChanged(self, msg): self.__statusData = msg self.__updateStatusBar() def extraInformationChanged(self, msg): QMessageBox.information(self.__window, self.tr("Information"), msg) def highlightMatches(self, pattern): self.__handler.highlightMatches(pattern) def __updateStatusBar(self): self.__window.statusBar().setStatus( self.__statusMessage, self.__statusData, self.__cursorPosition, self.__cursorAnchor, self.__eventFilter) class BlockSelection (QWidget): def __init__(self, editor): super(BlockSelection, self).__init__(editor.viewport()) self.__editor = editor self.__lineWidth = 4 def updateSelection(self, tc): # block selection rectagle rect = self.__editor.cursorRect(tc) w = rect.width() tc2 = QTextCursor(tc) tc2.setPosition(tc.anchor()) rect = rect.united( self.__editor.cursorRect(tc2) ) x = self.__lineWidth / 2 rect.adjust(-x, -x, x - w, x) QWidget.setGeometry(self, rect) def paintEvent(self, paintEvent): painter = QPainter(self) painter.setClipRect(paintEvent.rect()) color = self.__editor.palette().text() painter.setPen(QPen(color, self.__lineWidth)) painter.drawRect(self.rect()) class ReTextFakeVimHandler (QObject): """ Editor widget driven by FakeVim. """ def __init__(self, editor, window): super(ReTextFakeVimHandler, self).__init__(window) self.__window = window self.__editor = editor self.__blockSelection = BlockSelection(self.__editor) self.__blockSelection.hide() self.__searchSelections = [] fm = self.__editor.fontMetrics() self.__cursorWidth = fm.averageCharWidth() self.__oldCursorWidth = self.__editor.cursorWidth() self.__editor.setCursorWidth(self.__cursorWidth) self.__handler = FakeVimHandler(self.__editor, self) self.__proxy = Proxy(self.__window, self.__editor, self) self.__handler.installEventFilter() self.__handler.setupWidget() self.__handler.handleCommand( 'source {home}/.vimrc'.format(home = QDir.homePath())) self.__saveAction = None self.__quitAction = None # Update selections if cursor changes because of current line can be highlighted. self.__editor.cursorPositionChanged.connect(self.__updateSelections) def remove(self): self.__editor.setOverwriteMode(False) self.__editor.setCursorWidth(self.__oldCursorWidth) self.__blockSelection.deleteLater() self.__updateSelections([]) self.deleteLater() def handler(self): return self.__handler def setBlockSelection(self, enabled): self.__editor.setCursorWidth(self.__cursorWidth) self.__blockSelection.setVisible(enabled) if enabled: self.__blockSelection.updateSelection(self.__editor.textCursor()) # Shift text cursor into the block selection. tc = self.__editor.textCursor() if self.__columnForPosition(tc.anchor()) < self.__columnForPosition(tc.position()): self.__editor.setCursorWidth(-self.__cursorWidth) def setSaveAction(self, saveAction): self.__saveAction = saveAction def setQuitAction(self, quitAction): self.__quitAction = quitAction def save(self): if self.__saveAction: self.__saveAction.trigger() def quit(self): if self.__quitAction: self.__quitAction.trigger() def hasBlockSelection(self): return self.__BlockSelection.isVisible() def highlightMatches(self, pattern): cur = self.__editor.textCursor() re = QRegExp(pattern) cur = self.__editor.document().find(re) a = cur.position() searchSelections = [] while not cur.isNull(): if cur.hasSelection(): selection = QTextEdit.ExtraSelection() selection.format.setBackground(Qt.yellow) selection.format.setForeground(Qt.black) selection.cursor = cur searchSelections.append(selection) else: cur.movePosition(QTextCursor.NextCharacter) cur = self.__editor.document().find(re, cur) b = cur.position() if a == b: cur.movePosition(QTextCursor.NextCharacter) cur = self.__editor.document().find(re, cur) b = cur.position() if (a == b): break a = b self.__updateSelections(searchSelections) def __updateSelections(self, searchSelections = None): oldSelections = self.__editor.extraSelections() for selection in self.__searchSelections: for i in range(len(oldSelections) - 1, 0, -1): if selection.cursor == oldSelections[i].cursor: oldSelections.pop(i) break if searchSelections != None: self.__searchSelections = searchSelections self.__editor.setExtraSelections(oldSelections + self.__searchSelections) def __columnForPosition(self, position): return position - self.__editor.document().findBlock(position).position() class StatusBar (QStatusBar): def __init__(self): super(StatusBar, self).__init__() self.__statusMessageLabel = QLabel(self) self.__statusDataLabel = QLabel(self) self.__commandLine = QLineEdit(self) self.addPermanentWidget(self.__statusMessageLabel, 1) self.addPermanentWidget(self.__commandLine, 1) self.addPermanentWidget(self.__statusDataLabel) self.__commandLine.hide() def setStatus(self, statusMessage, statusData, cursorPosition, cursorAnchor, eventFilter): commandMode = cursorPosition != -1 self.__commandLine.setVisible(commandMode) self.__statusMessageLabel.setVisible(not commandMode) if commandMode: self.__commandLine.installEventFilter(eventFilter) self.__commandLine.setFocus() self.__commandLine.setText(statusMessage) self.__commandLine.setSelection(cursorPosition, cursorAnchor - cursorPosition) else: self.__statusMessageLabel.setText(statusMessage) self.__statusDataLabel.setText(statusData) ReText-5.3.1/ReText/config.py0000644000175000017500000001452212701276155016641 0ustar dmitrydmitry00000000000000# This file is part of ReText # Copyright: 2013-2015 Dmitry Shachnev # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . import sys from ReText import globalSettings, icon_path from ReText.icontheme import get_icon_theme from markups.common import CONFIGURATION_DIR from os.path import join from PyQt5.QtCore import QFile, QFileInfo, QUrl, Qt from PyQt5.QtGui import QDesktopServices, QIcon from PyQt5.QtWidgets import QCheckBox, QDialog, QDialogButtonBox, \ QFileDialog, QGridLayout, QLabel, QLineEdit, QPushButton, QSpinBox MKD_EXTS_FILE = join(CONFIGURATION_DIR, 'markdown-extensions.txt') class FileSelectButton(QPushButton): def __init__(self, parent, fileName): QPushButton.__init__(self, parent) self.fileName = fileName self.defaultText = self.tr('(none)') self.updateButtonText() self.clicked.connect(self.processClick) def processClick(self): startDir = (QFileInfo(self.fileName).absolutePath() if self.fileName else '') self.fileName = QFileDialog.getOpenFileName( self, self.tr('Select file to open'), startDir)[0] self.updateButtonText() def updateButtonText(self): if self.fileName: self.setText(QFileInfo(self.fileName).fileName()) else: self.setText(self.defaultText) class ConfigDialog(QDialog): def __init__(self, parent): QDialog.__init__(self, parent) self.parent = parent self.initConfigOptions() self.layout = QGridLayout(self) buttonBox = QDialogButtonBox(self) buttonBox.setStandardButtons(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) buttonBox.accepted.connect(self.saveSettings) buttonBox.rejected.connect(self.close) self.initWidgets() self.layout.addWidget(buttonBox, len(self.options), 0, 1, 2) def initConfigOptions(self): # options is a tuple containing (displayname, name) tuples self.options = ( (self.tr('Behavior'), None), (self.tr('Automatically save documents'), 'autoSave'), (self.tr('Restore window geometry'), 'saveWindowGeometry'), (self.tr('Use live preview by default'), 'livePreviewByDefault'), (self.tr('Open external links in ReText window'), 'handleWebLinks'), (self.tr('Markdown syntax extensions (comma-separated)'), 'markdownExtensions'), (None, 'markdownExtensions'), # (self.tr('Default Markdown file extension'), 'markdownDefaultFileExtension'), # (self.tr('Default reStructuredText file extension'), 'restDefaultFileExtension'), (self.tr('Editor'), None), (self.tr('Highlight current line'), 'highlightCurrentLine'), (self.tr('Show line numbers'), 'lineNumbersEnabled'), (self.tr('Tab key inserts spaces'), 'tabInsertsSpaces'), (self.tr('Tabulation width'), 'tabWidth'), (self.tr('Display right margin at column'), 'rightMargin'), (self.tr('Interface'), None), (self.tr('Icon theme name'), 'iconTheme'), (self.tr('Stylesheet file'), 'styleSheet', True), ) def initWidgets(self): self.configurators = {} for index, option in enumerate(self.options): displayname, name = option[:2] fileselector = option[2] if len(option) > 2 else False if name is None: header = QLabel('

%s

' % displayname, self) self.layout.addWidget(header, index, 0, 1, 2, Qt.AlignHCenter) continue if displayname: label = QLabel(displayname + ':', self) if name == 'markdownExtensions': if displayname: url = QUrl('https://github.com/retext-project/retext/wiki/Markdown-extensions') helpButton = QPushButton(self.tr('Help'), self) helpButton.clicked.connect(lambda: QDesktopServices.openUrl(url)) self.layout.addWidget(label, index, 0) self.layout.addWidget(helpButton, index, 1) continue try: extsFile = open(MKD_EXTS_FILE) value = extsFile.read().rstrip().replace(extsFile.newlines, ', ') extsFile.close() except Exception: value = '' self.configurators[name] = QLineEdit(self) self.configurators[name].setText(value) self.layout.addWidget(self.configurators[name], index, 0, 1, 2) continue value = getattr(globalSettings, name) if isinstance(value, bool): self.configurators[name] = QCheckBox(self) self.configurators[name].setChecked(value) elif isinstance(value, int): self.configurators[name] = QSpinBox(self) if name == 'tabWidth': self.configurators[name].setRange(1, 10) else: self.configurators[name].setMaximum(200) self.configurators[name].setValue(value) elif isinstance(value, str) and fileselector: self.configurators[name] = FileSelectButton(self, value) elif isinstance(value, str): self.configurators[name] = QLineEdit(self) self.configurators[name].setText(value) self.layout.addWidget(label, index, 0) self.layout.addWidget(self.configurators[name], index, 1, Qt.AlignRight) def saveSettings(self): for option in self.options: name = option[1] if name is None or name == 'markdownExtensions': continue configurator = self.configurators[name] if isinstance(configurator, QCheckBox): value = configurator.isChecked() elif isinstance(configurator, QSpinBox): value = configurator.value() elif isinstance(configurator, QLineEdit): value = configurator.text() elif isinstance(configurator, FileSelectButton): value = configurator.fileName setattr(globalSettings, name, value) self.applySettings() self.close() def applySettings(self): QIcon.setThemeName(globalSettings.iconTheme) if QIcon.themeName() in ('hicolor', ''): if not QFile.exists(icon_path + 'document-new.png'): QIcon.setThemeName(get_icon_theme()) try: extsFile = open(MKD_EXTS_FILE, 'w') for ext in self.configurators['markdownExtensions'].text().split(','): if ext.strip(): extsFile.write(ext.strip() + '\n') extsFile.close() except Exception as e: print(e, file=sys.stderr) for tab in self.parent.iterateTabs(): tab.editBox.updateFont() self.parent.updateStyleSheet() ReText-5.3.1/ReText/tablemode.py0000644000175000017500000001310012701272775017323 0ustar dmitrydmitry00000000000000# This file is part of ReText # Copyright: 2014 Maurice van der Pot # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . import sys from markups import MarkdownMarkup, ReStructuredTextMarkup from PyQt5.QtGui import QTextCursor LARGER_THAN_ANYTHING = sys.maxsize class Row: def __init__(self, block=None, text=None, separatorline=False, paddingchar=' '): self.block = block self.text = text self.separatorline = separatorline self.paddingchar = paddingchar def __repr__(self): return "" % (self.text, self.separatorline, self.paddingchar) def _getTableLines(doc, pos, markupClass): startblock = doc.findBlock(pos) editedlineindex = 0 offset = pos - startblock.position() rows = [ Row(block = startblock, text = startblock.text()) ] block = startblock.previous() while any(c in block.text() for c in '+|'): rows.insert(0, Row(block = block, text = block.text())) editedlineindex += 1 block = block.previous() block = startblock.next() while any(c in block.text() for c in '+|'): rows.append(Row(block = block, text = block.text())) block = block.next() if markupClass == MarkdownMarkup: for i, row in enumerate(rows): if i == 1: row.separatorline = True row.paddingchar = '-' elif markupClass == ReStructuredTextMarkup: for i, row in enumerate(rows): if i & 1 == 0: # i is even row.separatorline = True row.paddingchar = '=' if (i == 2) else '-' row.text = row.text.replace('+', '|') return rows, editedlineindex, offset def _sortaUndoEdit(rows, editedlineindex, editsize): aftertext = rows[editedlineindex].text if editsize < 0: beforetext = ' ' * -editsize + aftertext else: beforetext = aftertext[editsize:] rows[editedlineindex].text = beforetext def _determineRoomInCell(row, edge, shrinking, startposition=0): if edge >= len(row.text) or row.text[edge] != '|': room = LARGER_THAN_ANYTHING else: clearance = 0 cellwidth = 0 afterContent = True for i in range(edge - 1, startposition - 1, -1): if row.text[i] == '|': break else: if row.text[i] == row.paddingchar and afterContent: clearance += 1 else: afterContent = False cellwidth += 1 if row.separatorline: if shrinking: # do not shrink separator cells below 3 room = max(0, cellwidth - 3) else: # start expanding the cell if only the space for a right-align marker is left room = max(0, cellwidth - 1) else: room = clearance return room def _performShift(row, rowShift, edge, shift): editlist = [] if len(row.text) > edge and row.text[edge] == '|' and rowShift != shift: editsize = -(rowShift - shift) rowShift = shift # Insert one position further to the left on separator lines, because # there may be a space (for esthetical reasons) or an alignment marker # on the last position before the edge and that should stay next to the # edge. if row.separatorline: edge -= 1 editlist.append((edge, editsize)) return editlist, rowShift def _determineNextEdge(rows, rowShifts, offset): nextedge = None for row, rowShift in zip(rows, rowShifts): if rowShift != 0: edge = row.text.find('|', offset) if edge != -1 and (nextedge == None or edge < nextedge): nextedge = edge return nextedge def _determineEditLists(rows, editedlineindex, offset, editsize): rowShifts = [0 for _ in rows] rowShifts[editedlineindex] = editsize editLists = [[] for _ in rows] currentedge = _determineNextEdge(rows, rowShifts, offset) firstEdge = True while currentedge: if editsize < 0: leastLeftShift = min((-rowShift + _determineRoomInCell(row, currentedge, True) for row, rowShift in zip(rows, rowShifts))) shift = max(editsize, -leastLeftShift) else: if firstEdge: room = _determineRoomInCell(rows[editedlineindex], currentedge, False, offset) shift = max(0, editsize - room) for i, row in enumerate(rows): editList, newRowShift = _performShift(row, rowShifts[i], currentedge, shift) rowShifts[i] = newRowShift editLists[i].extend(editList) currentedge = _determineNextEdge(rows, rowShifts, currentedge + 1) firstEdge = False return editLists def _performEdits(cursor, rows, editLists, linewithoffset, offset): cursor.joinPreviousEditBlock() for i, (row, editList) in enumerate(zip(rows, editLists)): for editpos, editsize in sorted(editList, reverse=True): if i == linewithoffset: editpos += offset cursor.setPosition(row.block.position() + editpos) if editsize > 0: cursor.insertText(editsize * row.paddingchar) else: for _ in range(-editsize): cursor.deletePreviousChar() cursor.endEditBlock() def adjustTableToChanges(doc, pos, editsize, markupClass): if markupClass in (MarkdownMarkup, ReStructuredTextMarkup): rows, editedlineindex, offset = _getTableLines(doc, pos, markupClass) _sortaUndoEdit(rows, editedlineindex, editsize) editLists = _determineEditLists(rows, editedlineindex, offset, editsize) cursor = QTextCursor(doc) _performEdits(cursor, rows, editLists, editedlineindex, editsize) ReText-5.3.1/ReText/window.py0000644000175000017500000011712012701276155016701 0ustar dmitrydmitry00000000000000# This file is part of ReText # Copyright: 2012-2015 Dmitry Shachnev # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . import markups import sys from subprocess import Popen from ReText import icon_path, app_version, globalSettings, readListFromSettings, \ writeListToSettings, writeToSettings, datadirs, enchant, enchant_available from ReText.tab import ReTextTab, PreviewNormal, PreviewLive from ReText.dialogs import HtmlDialog, LocaleDialog from ReText.config import ConfigDialog from ReText.icontheme import get_icon_theme try: from ReText.fakevimeditor import ReTextFakeVimHandler, FakeVimMode except ImportError: ReTextFakeVimHandler = None from PyQt5.QtCore import QDir, QFile, QFileInfo, QFileSystemWatcher, \ QIODevice, QLocale, QRect, QTextCodec, QTextStream, QTimer, QUrl, Qt from PyQt5.QtGui import QColor, QDesktopServices, QIcon, \ QKeySequence, QPalette, QTextCursor, QTextDocument, QTextDocumentWriter from PyQt5.QtWidgets import QAction, QActionGroup, QApplication, QCheckBox, \ QComboBox, QDesktopWidget, QDialog, QFileDialog, QFontDialog, QInputDialog, \ QLineEdit, QMainWindow, QMenu, QMenuBar, QMessageBox, QTabWidget, QToolBar from PyQt5.QtPrintSupport import QPrintDialog, QPrintPreviewDialog, QPrinter class ReTextWindow(QMainWindow): def __init__(self, parent=None): QMainWindow.__init__(self, parent) self.resize(950, 700) screenRect = QDesktopWidget().screenGeometry() if globalSettings.windowGeometry: self.restoreGeometry(globalSettings.windowGeometry) else: self.move((screenRect.width()-self.width())/2, (screenRect.height()-self.height())/2) if not screenRect.contains(self.geometry()): self.showMaximized() if globalSettings.iconTheme: QIcon.setThemeName(globalSettings.iconTheme) if QIcon.themeName() in ('hicolor', ''): if not QFile.exists(icon_path + 'document-new.png'): QIcon.setThemeName(get_icon_theme()) if QFile.exists(icon_path+'retext.png'): self.setWindowIcon(QIcon(icon_path+'retext.png')) elif QFile.exists('/usr/share/pixmaps/retext.png'): self.setWindowIcon(QIcon('/usr/share/pixmaps/retext.png')) else: self.setWindowIcon(QIcon.fromTheme('retext', QIcon.fromTheme('accessories-text-editor'))) self.tabWidget = QTabWidget(self) self.initTabWidget() self.setCentralWidget(self.tabWidget) self.tabWidget.currentChanged.connect(self.changeIndex) self.tabWidget.tabCloseRequested.connect(self.closeTab) toolBar = QToolBar(self.tr('File toolbar'), self) self.addToolBar(Qt.TopToolBarArea, toolBar) self.editBar = QToolBar(self.tr('Edit toolbar'), self) self.addToolBar(Qt.TopToolBarArea, self.editBar) self.searchBar = QToolBar(self.tr('Search toolbar'), self) self.addToolBar(Qt.BottomToolBarArea, self.searchBar) toolBar.setVisible(not globalSettings.hideToolBar) self.editBar.setVisible(not globalSettings.hideToolBar) self.actionNew = self.act(self.tr('New'), 'document-new', self.createNew, shct=QKeySequence.New) self.actionNew.setPriority(QAction.LowPriority) self.actionOpen = self.act(self.tr('Open'), 'document-open', self.openFile, shct=QKeySequence.Open) self.actionOpen.setPriority(QAction.LowPriority) self.actionSetEncoding = self.act(self.tr('Set encoding'), trig=self.showEncodingDialog) self.actionSetEncoding.setEnabled(False) self.actionReload = self.act(self.tr('Reload'), 'view-refresh', lambda: self.currentTab.readTextFromFile()) self.actionReload.setEnabled(False) self.actionSave = self.act(self.tr('Save'), 'document-save', self.saveFile, shct=QKeySequence.Save) self.actionSave.setEnabled(False) self.actionSave.setPriority(QAction.LowPriority) self.actionSaveAs = self.act(self.tr('Save as'), 'document-save-as', self.saveFileAs, shct=QKeySequence.SaveAs) self.actionNextTab = self.act(self.tr('Next tab'), 'go-next', lambda: self.switchTab(1), shct=Qt.CTRL+Qt.Key_PageDown) self.actionPrevTab = self.act(self.tr('Previous tab'), 'go-previous', lambda: self.switchTab(-1), shct=Qt.CTRL+Qt.Key_PageUp) self.actionPrint = self.act(self.tr('Print'), 'document-print', self.printFile, shct=QKeySequence.Print) self.actionPrint.setPriority(QAction.LowPriority) self.actionPrintPreview = self.act(self.tr('Print preview'), 'document-print-preview', self.printPreview) self.actionViewHtml = self.act(self.tr('View HTML code'), 'text-html', self.viewHtml) self.actionChangeEditorFont = self.act(self.tr('Change editor font'), trig=self.changeEditorFont) self.actionChangePreviewFont = self.act(self.tr('Change preview font'), trig=self.changePreviewFont) self.actionSearch = self.act(self.tr('Find text'), 'edit-find', shct=QKeySequence.Find) self.actionSearch.setCheckable(True) self.actionSearch.triggered[bool].connect(self.searchBar.setVisible) self.searchBar.visibilityChanged.connect(self.searchBarVisibilityChanged) self.actionPreview = self.act(self.tr('Preview'), shct=Qt.CTRL+Qt.Key_E, trigbool=self.preview) if QIcon.hasThemeIcon('document-preview'): self.actionPreview.setIcon(QIcon.fromTheme('document-preview')) elif QIcon.hasThemeIcon('preview-file'): self.actionPreview.setIcon(QIcon.fromTheme('preview-file')) elif QIcon.hasThemeIcon('x-office-document'): self.actionPreview.setIcon(QIcon.fromTheme('x-office-document')) else: self.actionPreview.setIcon(QIcon(icon_path+'document-preview.png')) self.actionLivePreview = self.act(self.tr('Live preview'), shct=Qt.CTRL+Qt.Key_L, trigbool=self.enableLivePreview) menuPreview = QMenu() menuPreview.addAction(self.actionLivePreview) self.actionPreview.setMenu(menuPreview) self.actionTableMode = self.act(self.tr('Table mode'), shct=Qt.CTRL+Qt.Key_T, trigbool=lambda x: self.currentTab.editBox.enableTableMode(x)) if ReTextFakeVimHandler: self.actionFakeVimMode = self.act(self.tr('FakeVim mode'), shct=Qt.CTRL+Qt.ALT+Qt.Key_V, trigbool=self.enableFakeVimMode) if globalSettings.useFakeVim: self.actionFakeVimMode.setChecked(True) self.enableFakeVimMode(True) self.actionFullScreen = self.act(self.tr('Fullscreen mode'), 'view-fullscreen', shct=Qt.Key_F11, trigbool=self.enableFullScreen) self.actionFullScreen.setPriority(QAction.LowPriority) self.actionConfig = self.act(self.tr('Preferences'), icon='preferences-system', trig=self.openConfigDialog) self.actionConfig.setMenuRole(QAction.PreferencesRole) self.actionSaveHtml = self.act('HTML', 'text-html', self.saveFileHtml) self.actionPdf = self.act('PDF', 'application-pdf', self.savePdf) self.actionOdf = self.act('ODT', 'x-office-document', self.saveOdf) self.getExportExtensionsList() self.actionQuit = self.act(self.tr('Quit'), 'application-exit', shct=QKeySequence.Quit) self.actionQuit.setMenuRole(QAction.QuitRole) self.actionQuit.triggered.connect(self.close) self.actionUndo = self.act(self.tr('Undo'), 'edit-undo', lambda: self.currentTab.editBox.undo(), shct=QKeySequence.Undo) self.actionRedo = self.act(self.tr('Redo'), 'edit-redo', lambda: self.currentTab.editBox.redo(), shct=QKeySequence.Redo) self.actionCopy = self.act(self.tr('Copy'), 'edit-copy', lambda: self.currentTab.editBox.copy(), shct=QKeySequence.Copy) self.actionCut = self.act(self.tr('Cut'), 'edit-cut', lambda: self.currentTab.editBox.cut(), shct=QKeySequence.Cut) self.actionPaste = self.act(self.tr('Paste'), 'edit-paste', lambda: self.currentTab.editBox.paste(), shct=QKeySequence.Paste) self.actionUndo.setEnabled(False) self.actionRedo.setEnabled(False) self.actionCopy.setEnabled(False) self.actionCut.setEnabled(False) qApp = QApplication.instance() qApp.clipboard().dataChanged.connect(self.clipboardDataChanged) self.clipboardDataChanged() if enchant_available: self.actionEnableSC = self.act(self.tr('Enable'), trigbool=self.enableSpellCheck) self.actionSetLocale = self.act(self.tr('Set locale'), trig=self.changeLocale) self.actionWebKit = self.act(self.tr('Use WebKit renderer'), trigbool=self.enableWebKit) self.actionWebKit.setChecked(globalSettings.useWebKit) self.actionShow = self.act(self.tr('Show directory'), 'system-file-manager', self.showInDir) self.actionFind = self.act(self.tr('Next'), 'go-next', self.find, shct=QKeySequence.FindNext) self.actionFindPrev = self.act(self.tr('Previous'), 'go-previous', lambda: self.find(back=True), shct=QKeySequence.FindPrevious) self.actionHelp = self.act(self.tr('Get help online'), 'help-contents', self.openHelp) self.aboutWindowTitle = self.tr('About ReText') self.actionAbout = self.act(self.aboutWindowTitle, 'help-about', self.aboutDialog) self.actionAbout.setMenuRole(QAction.AboutRole) self.actionAboutQt = self.act(self.tr('About Qt')) self.actionAboutQt.setMenuRole(QAction.AboutQtRole) self.actionAboutQt.triggered.connect(qApp.aboutQt) availableMarkups = markups.get_available_markups() if not availableMarkups: print('Warning: no markups are available!') self.defaultMarkup = availableMarkups[0] if availableMarkups else None if globalSettings.defaultMarkup: mc = markups.find_markup_class_by_name(globalSettings.defaultMarkup) if mc and mc.available(): self.defaultMarkup = mc if len(availableMarkups) > 1: self.chooseGroup = QActionGroup(self) markupActions = [] for markup in availableMarkups: markupAction = self.act(markup.name, trigbool=self.markupFunction(markup)) if markup == self.defaultMarkup: markupAction.setChecked(True) self.chooseGroup.addAction(markupAction) markupActions.append(markupAction) self.actionBold = self.act(self.tr('Bold'), shct=QKeySequence.Bold, trig=lambda: self.insertChars('**')) self.actionItalic = self.act(self.tr('Italic'), shct=QKeySequence.Italic, trig=lambda: self.insertChars('*')) self.actionUnderline = self.act(self.tr('Underline'), shct=QKeySequence.Underline, trig=lambda: self.insertTag('u')) self.usefulTags = ('a', 'big', 'center', 'img', 's', 'small', 'span', 'table', 'td', 'tr', 'u') self.usefulChars = ('deg', 'divide', 'dollar', 'hellip', 'laquo', 'larr', 'lsquo', 'mdash', 'middot', 'minus', 'nbsp', 'ndash', 'raquo', 'rarr', 'rsquo', 'times') self.tagsBox = QComboBox(self.editBar) self.tagsBox.addItem(self.tr('Tags')) self.tagsBox.addItems(self.usefulTags) self.tagsBox.activated.connect(self.insertTag) self.symbolBox = QComboBox(self.editBar) self.symbolBox.addItem(self.tr('Symbols')) self.symbolBox.addItems(self.usefulChars) self.symbolBox.activated.connect(self.insertSymbol) self.updateStyleSheet() menubar = QMenuBar(self) menubar.setGeometry(QRect(0, 0, 800, 25)) self.setMenuBar(menubar) menuFile = menubar.addMenu(self.tr('File')) menuEdit = menubar.addMenu(self.tr('Edit')) menuHelp = menubar.addMenu(self.tr('Help')) menuFile.addAction(self.actionNew) menuFile.addAction(self.actionOpen) self.menuRecentFiles = menuFile.addMenu(self.tr('Open recent')) self.menuRecentFiles.aboutToShow.connect(self.updateRecentFiles) menuFile.addMenu(self.menuRecentFiles) menuFile.addAction(self.actionShow) menuFile.addAction(self.actionSetEncoding) menuFile.addAction(self.actionReload) menuFile.addSeparator() menuFile.addAction(self.actionSave) menuFile.addAction(self.actionSaveAs) menuFile.addSeparator() menuFile.addAction(self.actionNextTab) menuFile.addAction(self.actionPrevTab) menuFile.addSeparator() menuExport = menuFile.addMenu(self.tr('Export')) menuExport.addAction(self.actionSaveHtml) menuExport.addAction(self.actionOdf) menuExport.addAction(self.actionPdf) if self.extensionActions: menuExport.addSeparator() for action, mimetype in self.extensionActions: menuExport.addAction(action) menuExport.aboutToShow.connect(self.updateExtensionsVisibility) menuFile.addAction(self.actionPrint) menuFile.addAction(self.actionPrintPreview) menuFile.addSeparator() menuFile.addAction(self.actionQuit) menuEdit.addAction(self.actionUndo) menuEdit.addAction(self.actionRedo) menuEdit.addSeparator() menuEdit.addAction(self.actionCut) menuEdit.addAction(self.actionCopy) menuEdit.addAction(self.actionPaste) menuEdit.addSeparator() if enchant_available: menuSC = menuEdit.addMenu(self.tr('Spell check')) menuSC.addAction(self.actionEnableSC) menuSC.addAction(self.actionSetLocale) menuEdit.addAction(self.actionSearch) menuEdit.addAction(self.actionChangeEditorFont) menuEdit.addAction(self.actionChangePreviewFont) menuEdit.addSeparator() if len(availableMarkups) > 1: self.menuMode = menuEdit.addMenu(self.tr('Default markup')) for markupAction in markupActions: self.menuMode.addAction(markupAction) menuFormat = menuEdit.addMenu(self.tr('Formatting')) menuFormat.addAction(self.actionBold) menuFormat.addAction(self.actionItalic) menuFormat.addAction(self.actionUnderline) menuEdit.addAction(self.actionWebKit) menuEdit.addSeparator() menuEdit.addAction(self.actionViewHtml) menuEdit.addAction(self.actionPreview) menuEdit.addAction(self.actionTableMode) if ReTextFakeVimHandler: menuEdit.addAction(self.actionFakeVimMode) menuEdit.addSeparator() menuEdit.addAction(self.actionFullScreen) menuEdit.addAction(self.actionConfig) menuHelp.addAction(self.actionHelp) menuHelp.addSeparator() menuHelp.addAction(self.actionAbout) menuHelp.addAction(self.actionAboutQt) menubar.addMenu(menuFile) menubar.addMenu(menuEdit) menubar.addMenu(menuHelp) toolBar.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) toolBar.addAction(self.actionNew) toolBar.addSeparator() toolBar.addAction(self.actionOpen) toolBar.addAction(self.actionSave) toolBar.addAction(self.actionPrint) toolBar.addSeparator() toolBar.addAction(self.actionPreview) toolBar.addAction(self.actionFullScreen) self.editBar.addAction(self.actionUndo) self.editBar.addAction(self.actionRedo) self.editBar.addSeparator() self.editBar.addAction(self.actionCut) self.editBar.addAction(self.actionCopy) self.editBar.addAction(self.actionPaste) self.editBar.addSeparator() self.editBar.addWidget(self.tagsBox) self.editBar.addWidget(self.symbolBox) self.searchEdit = QLineEdit(self.searchBar) self.searchEdit.setPlaceholderText(self.tr('Search')) self.searchEdit.returnPressed.connect(self.find) self.csBox = QCheckBox(self.tr('Case sensitively'), self.searchBar) self.searchBar.addWidget(self.searchEdit) self.searchBar.addSeparator() self.searchBar.addWidget(self.csBox) self.searchBar.addAction(self.actionFindPrev) self.searchBar.addAction(self.actionFind) self.searchBar.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) self.searchBar.setVisible(False) self.autoSaveEnabled = globalSettings.autoSave if self.autoSaveEnabled: timer = QTimer(self) timer.start(60000) timer.timeout.connect(self.saveAll) self.ind = None if enchant_available: self.sl = globalSettings.spellCheckLocale if self.sl: try: enchant.Dict(self.sl) except Exception as e: print(e, file=sys.stderr) self.sl = None if globalSettings.spellCheck: self.actionEnableSC.setChecked(True) self.enableSpellCheck(True) self.fileSystemWatcher = QFileSystemWatcher() self.fileSystemWatcher.fileChanged.connect(self.fileChanged) def iterateTabs(self): for i in range(self.tabWidget.count()): yield self.tabWidget.widget(i).tab def updateStyleSheet(self): if globalSettings.styleSheet: sheetfile = QFile(globalSettings.styleSheet) sheetfile.open(QIODevice.ReadOnly) self.ss = QTextStream(sheetfile).readAll() sheetfile.close() else: self.ss = '' def initTabWidget(self): def dragEnterEvent(e): e.acceptProposedAction() def dropEvent(e): fn = bytes(e.mimeData().data('text/plain')).decode().rstrip() if fn.startswith('file:'): fn = QUrl(fn).toLocalFile() self.openFileWrapper(fn) self.tabWidget.setTabsClosable(True) self.tabWidget.setAcceptDrops(True) self.tabWidget.setMovable(True) self.tabWidget.dragEnterEvent = dragEnterEvent self.tabWidget.dropEvent = dropEvent def act(self, name, icon=None, trig=None, trigbool=None, shct=None): if not isinstance(shct, QKeySequence): shct = QKeySequence(shct) if icon: action = QAction(self.actIcon(icon), name, self) else: action = QAction(name, self) if trig: action.triggered.connect(trig) elif trigbool: action.setCheckable(True) action.triggered[bool].connect(trigbool) if shct: action.setShortcut(shct) return action def actIcon(self, name): return QIcon.fromTheme(name, QIcon(icon_path+name+'.png')) def printError(self): import traceback print('Exception occured while parsing document:', file=sys.stderr) traceback.print_exc() def createTab(self, fileName): self.currentTab = ReTextTab(self, fileName, previewState=int(globalSettings.livePreviewByDefault)) self.tabWidget.addTab(self.currentTab.getSplitter(), self.tr("New document")) def closeTab(self, ind): if self.maybeSave(ind): if self.tabWidget.count() == 1: self.createTab("") currentWidget = self.tabWidget.widget(ind) if currentWidget.tab.fileName: self.fileSystemWatcher.removePath(currentWidget.tab.fileName) del currentWidget.tab self.tabWidget.removeTab(ind) def docTypeChanged(self): markupClass = self.currentTab.getMarkupClass() if type(self.currentTab.markup) != markupClass: self.currentTab.setMarkupClass(markupClass) self.currentTab.updatePreviewBox() dtMarkdown = (markupClass == markups.MarkdownMarkup) dtMkdOrReST = dtMarkdown or (markupClass == markups.ReStructuredTextMarkup) self.tagsBox.setEnabled(dtMarkdown) self.symbolBox.setEnabled(dtMarkdown) self.actionUnderline.setEnabled(dtMarkdown) self.actionBold.setEnabled(dtMkdOrReST) self.actionItalic.setEnabled(dtMkdOrReST) canReload = bool(self.currentTab.fileName) and not self.autoSaveActive() self.actionSetEncoding.setEnabled(canReload) self.actionReload.setEnabled(canReload) def changeIndex(self, ind): self.currentTab = self.tabWidget.currentWidget().tab editBox = self.currentTab.editBox previewState = self.currentTab.previewState self.actionUndo.setEnabled(editBox.document().isUndoAvailable()) self.actionRedo.setEnabled(editBox.document().isRedoAvailable()) self.actionCopy.setEnabled(editBox.textCursor().hasSelection()) self.actionCut.setEnabled(editBox.textCursor().hasSelection()) self.actionPreview.setChecked(previewState >= PreviewLive) self.actionLivePreview.setChecked(previewState == PreviewLive) self.actionTableMode.setChecked(editBox.tableModeEnabled) self.editBar.setEnabled(previewState < PreviewNormal) self.ind = ind if self.currentTab.fileName: self.setCurrentFile() else: self.setWindowTitle(self.tr('New document') + '[*]') self.docTypeChanged() self.modificationChanged(editBox.document().isModified()) editBox.setFocus(Qt.OtherFocusReason) def changeEditorFont(self): font, ok = QFontDialog.getFont(globalSettings.editorFont, self) if ok: globalSettings.editorFont = font for tab in self.iterateTabs(): tab.editBox.updateFont() def changePreviewFont(self): font, ok = QFontDialog.getFont(globalSettings.font, self) if ok: globalSettings.font = font for tab in self.iterateTabs(): tab.updatePreviewBox() def preview(self, viewmode): self.currentTab.previewState = viewmode * 2 self.actionLivePreview.setChecked(False) self.editBar.setDisabled(viewmode) self.currentTab.updateBoxesVisibility() if viewmode: self.currentTab.updatePreviewBox() def enableLivePreview(self, livemode): self.currentTab.previewState = int(livemode) self.actionPreview.setChecked(livemode) self.editBar.setEnabled(True) self.currentTab.updateBoxesVisibility() if livemode: self.currentTab.updatePreviewBox() def enableWebKit(self, enable): globalSettings.useWebKit = enable for i in range(self.tabWidget.count()): splitter = self.tabWidget.widget(i) tab = splitter.tab tab.previewBox.setParent(None) tab.previewBox.deleteLater() tab.previewBox = tab.createPreviewBox() tab.previewBox.setMinimumWidth(125) splitter.addWidget(tab.previewBox) splitter.setSizes((50, 50)) tab.updatePreviewBox() tab.updateBoxesVisibility() def enableCopy(self, copymode): self.actionCopy.setEnabled(copymode) self.actionCut.setEnabled(copymode) def enableFullScreen(self, yes): if yes: self.showFullScreen() else: self.showNormal() def openConfigDialog(self): dlg = ConfigDialog(self) dlg.setWindowTitle(self.tr('Preferences')) dlg.show() def enableFakeVimMode(self, yes): globalSettings.useFakeVim = yes if yes: FakeVimMode.init(self) for tab in self.iterateTabs(): tab.installFakeVimHandler() else: FakeVimMode.exit(self) def enableSpellCheck(self, yes): if yes: if self.sl: self.setAllDictionaries(enchant.Dict(self.sl)) else: self.setAllDictionaries(enchant.Dict()) else: self.setAllDictionaries(None) globalSettings.spellCheck = yes def setAllDictionaries(self, dictionary): for tab in self.iterateTabs(): hl = tab.highlighter hl.dictionary = dictionary hl.rehighlight() def changeLocale(self): if self.sl: localedlg = LocaleDialog(self, defaultText=self.sl) else: localedlg = LocaleDialog(self) if localedlg.exec() != QDialog.Accepted: return sl = localedlg.localeEdit.text() setdefault = localedlg.checkBox.isChecked() if sl: try: sl = str(sl) enchant.Dict(sl) except Exception as e: QMessageBox.warning(self, '', str(e)) else: self.sl = sl self.enableSpellCheck(self.actionEnableSC.isChecked()) else: self.sl = None self.enableSpellCheck(self.actionEnableSC.isChecked()) if setdefault: globalSettings.spellCheckLocale = sl def searchBarVisibilityChanged(self, visible): self.actionSearch.setChecked(visible) if visible: self.searchEdit.setFocus(Qt.ShortcutFocusReason) def find(self, back=False): flags = QTextDocument.FindFlags() if back: flags |= QTextDocument.FindBackward if self.csBox.isChecked(): flags |= QTextDocument.FindCaseSensitively text = self.searchEdit.text() editBox = self.currentTab.editBox cursor = editBox.textCursor() newCursor = editBox.document().find(text, cursor, flags) if not newCursor.isNull(): editBox.setTextCursor(newCursor) return self.setSearchEditColor(True) cursor.movePosition(QTextCursor.End if back else QTextCursor.Start) newCursor = editBox.document().find(text, cursor, flags) if not newCursor.isNull(): editBox.setTextCursor(newCursor) return self.setSearchEditColor(True) self.setSearchEditColor(False) def setSearchEditColor(self, found): palette = self.searchEdit.palette() palette.setColor(QPalette.Active, QPalette.Base, Qt.white if found else QColor(255, 102, 102)) self.searchEdit.setPalette(palette) def showInDir(self): if self.currentTab.fileName: path = QFileInfo(self.currentTab.fileName).path() QDesktopServices.openUrl(QUrl.fromLocalFile(path)) else: QMessageBox.warning(self, '', self.tr("Please, save the file somewhere.")) def setCurrentFile(self): self.setWindowTitle("") self.tabWidget.setTabText(self.ind, self.currentTab.getDocumentTitle(baseName=True)) self.setWindowFilePath(self.currentTab.fileName) files = readListFromSettings("recentFileList") while self.currentTab.fileName in files: files.remove(self.currentTab.fileName) files.insert(0, self.currentTab.fileName) if len(files) > 10: del files[10:] writeListToSettings("recentFileList", files) QDir.setCurrent(QFileInfo(self.currentTab.fileName).dir().path()) self.docTypeChanged() def createNew(self, text=None): self.createTab("") self.ind = self.tabWidget.count()-1 self.tabWidget.setCurrentIndex(self.ind) if text: self.currentTab.editBox.textCursor().insertText(text) def switchTab(self, shift=1): self.tabWidget.setCurrentIndex((self.ind + shift) % self.tabWidget.count()) def updateRecentFiles(self): self.menuRecentFiles.clear() self.recentFilesActions = [] filesOld = readListFromSettings("recentFileList") files = [] for f in filesOld: if QFile.exists(f): files.append(f) self.recentFilesActions.append(self.act(f, trig=self.openFunction(f))) writeListToSettings("recentFileList", files) for action in self.recentFilesActions: self.menuRecentFiles.addAction(action) def markupFunction(self, markup): return lambda: self.setDefaultMarkup(markup) def openFunction(self, fileName): return lambda: self.openFileWrapper(fileName) def extensionFunction(self, data): return lambda: \ self.runExtensionCommand(data['Exec'], data['FileFilter'], data['DefaultExtension']) def getExportExtensionsList(self): extensions = [] for extsprefix in datadirs: extsdir = QDir(extsprefix+'/export-extensions/') if extsdir.exists(): for fileInfo in extsdir.entryInfoList(['*.desktop', '*.ini'], QDir.Files | QDir.Readable): extensions.append(self.readExtension(fileInfo.filePath())) locale = QLocale.system().name() self.extensionActions = [] for extension in extensions: try: if ('Name[%s]' % locale) in extension: name = extension['Name[%s]' % locale] elif ('Name[%s]' % locale.split('_')[0]) in extension: name = extension['Name[%s]' % locale.split('_')[0]] else: name = extension['Name'] data = {} for prop in ('FileFilter', 'DefaultExtension', 'Exec'): if 'X-ReText-'+prop in extension: data[prop] = extension['X-ReText-'+prop] elif prop in extension: data[prop] = extension[prop] else: data[prop] = '' action = self.act(name, trig=self.extensionFunction(data)) if 'Icon' in extension: action.setIcon(self.actIcon(extension['Icon'])) mimetype = extension['MimeType'] if 'MimeType' in extension else None except KeyError: print('Failed to parse extension: Name is required', file=sys.stderr) else: self.extensionActions.append((action, mimetype)) def updateExtensionsVisibility(self): markupClass = self.currentTab.getMarkupClass() for action in self.extensionActions: if markupClass is None: action[0].setEnabled(False) continue mimetype = action[1] if mimetype == None: enabled = True elif markupClass == markups.MarkdownMarkup: enabled = (mimetype in ("text/x-retext-markdown", "text/x-markdown")) elif markupClass == markups.ReStructuredTextMarkup: enabled = (mimetype in ("text/x-retext-rst", "text/x-rst")) else: enabled = False action[0].setEnabled(enabled) def readExtension(self, fileName): extFile = QFile(fileName) extFile.open(QIODevice.ReadOnly) extension = {} stream = QTextStream(extFile) while not stream.atEnd(): line = stream.readLine() if '=' in line: index = line.index('=') extension[line[:index].rstrip()] = line[index+1:].lstrip() extFile.close() return extension def openFile(self): supportedExtensions = ['.txt'] for markup in markups.get_all_markups(): supportedExtensions += markup.file_extensions fileFilter = ' (' + str.join(' ', ['*'+ext for ext in supportedExtensions]) + ');;' fileNames = QFileDialog.getOpenFileNames(self, self.tr("Select one or several files to open"), "", self.tr("Supported files") + fileFilter + self.tr("All files (*)")) for fileName in fileNames[0]: self.openFileWrapper(fileName) def openFileWrapper(self, fileName): if not fileName: return fileName = QFileInfo(fileName).canonicalFilePath() exists = False for i, tab in enumerate(self.iterateTabs()): if tab.fileName == fileName: exists = True ex = i if exists: self.tabWidget.setCurrentIndex(ex) elif QFile.exists(fileName): noEmptyTab = ( (self.ind is None) or self.currentTab.fileName or self.currentTab.editBox.toPlainText() or self.currentTab.editBox.document().isModified() ) if noEmptyTab: self.createTab(fileName) self.ind = self.tabWidget.count()-1 self.tabWidget.setCurrentIndex(self.ind) if fileName: self.fileSystemWatcher.addPath(fileName) self.currentTab.fileName = fileName self.currentTab.readTextFromFile() editBox = self.currentTab.editBox self.setCurrentFile() self.setWindowModified(editBox.document().isModified()) def showEncodingDialog(self): if not self.maybeSave(self.ind): return encoding, ok = QInputDialog.getItem(self, '', self.tr('Select file encoding from the list:'), [bytes(b).decode() for b in QTextCodec.availableCodecs()], 0, False) if ok: self.currentTab.readTextFromFile(encoding) def saveFileAs(self): self.saveFile(dlg=True) def saveAll(self): for tab in self.iterateTabs(): if tab.fileName and QFileInfo(tab.fileName).isWritable(): tab.saveTextToFile() tab.editBox.document().setModified(False) def saveFile(self, dlg=False): if (not self.currentTab.fileName) or dlg: markupClass = self.currentTab.getMarkupClass() if (markupClass is None) or not hasattr(markupClass, 'default_extension'): defaultExt = self.tr("Plain text (*.txt)") ext = ".txt" else: defaultExt = self.tr('%s files', 'Example of final string: Markdown files') \ % markupClass.name + ' (' + str.join(' ', ('*'+extension for extension in markupClass.file_extensions)) + ')' if markupClass == markups.MarkdownMarkup: ext = globalSettings.markdownDefaultFileExtension elif markupClass == markups.ReStructuredTextMarkup: ext = globalSettings.restDefaultFileExtension else: ext = markupClass.default_extension newFileName = QFileDialog.getSaveFileName(self, self.tr("Save file"), "", defaultExt)[0] if newFileName: if not QFileInfo(newFileName).suffix(): newFileName += ext if self.currentTab.fileName: self.fileSystemWatcher.removePath(self.currentTab.fileName) self.currentTab.fileName = newFileName self.actionSetEncoding.setDisabled(self.autoSaveActive()) if self.currentTab.fileName: if self.currentTab.saveTextToFile(): self.setCurrentFile() self.currentTab.editBox.document().setModified(False) self.setWindowModified(False) return True else: QMessageBox.warning(self, '', self.tr("Cannot save to file because it is read-only!")) return False def saveHtml(self, fileName): if not QFileInfo(fileName).suffix(): fileName += ".html" try: htmltext = self.currentTab.getHtml(includeStyleSheet=False, includeMeta=True, webenv=True) except Exception: return self.printError() htmlFile = QFile(fileName) htmlFile.open(QIODevice.WriteOnly) html = QTextStream(htmlFile) if globalSettings.defaultCodec: html.setCodec(globalSettings.defaultCodec) html << htmltext htmlFile.close() def textDocument(self): td = QTextDocument() td.setMetaInformation(QTextDocument.DocumentTitle, self.currentTab.getDocumentTitle()) if self.ss: td.setDefaultStyleSheet(self.ss) td.setHtml(self.currentTab.getHtml()) td.setDefaultFont(globalSettings.font) return td def saveOdf(self): try: document = self.textDocument() except Exception: return self.printError() fileName = QFileDialog.getSaveFileName(self, self.tr("Export document to ODT"), "", self.tr("OpenDocument text files (*.odt)"))[0] if not QFileInfo(fileName).suffix(): fileName += ".odt" writer = QTextDocumentWriter(fileName) writer.setFormat(b"odf") writer.write(document) def saveFileHtml(self): fileName = QFileDialog.getSaveFileName(self, self.tr("Save file"), "", self.tr("HTML files (*.html *.htm)"))[0] if fileName: self.saveHtml(fileName) def getDocumentForPrint(self): if globalSettings.useWebKit: return self.currentTab.previewBox try: return self.textDocument() except Exception: self.printError() def standardPrinter(self): printer = QPrinter(QPrinter.HighResolution) printer.setDocName(self.currentTab.getDocumentTitle()) printer.setCreator('ReText %s' % app_version) return printer def savePdf(self): self.currentTab.updatePreviewBox() fileName = QFileDialog.getSaveFileName(self, self.tr("Export document to PDF"), "", self.tr("PDF files (*.pdf)"))[0] if fileName: if not QFileInfo(fileName).suffix(): fileName += ".pdf" printer = self.standardPrinter() printer.setOutputFormat(QPrinter.PdfFormat) printer.setOutputFileName(fileName) document = self.getDocumentForPrint() if document != None: document.print(printer) def printFile(self): self.currentTab.updatePreviewBox() printer = self.standardPrinter() dlg = QPrintDialog(printer, self) dlg.setWindowTitle(self.tr("Print document")) if (dlg.exec() == QDialog.Accepted): document = self.getDocumentForPrint() if document != None: document.print(printer) def printPreview(self): document = self.getDocumentForPrint() if document == None: return printer = self.standardPrinter() preview = QPrintPreviewDialog(printer, self) preview.paintRequested.connect(document.print) preview.exec() def runExtensionCommand(self, command, filefilter, defaultext): of = ('%of' in command) html = ('%html' in command) if of: if defaultext and not filefilter: filefilter = '*'+defaultext fileName = QFileDialog.getSaveFileName(self, self.tr('Export document'), '', filefilter)[0] if not fileName: return if defaultext and not QFileInfo(fileName).suffix(): fileName += defaultext basename = '.%s.retext-temp' % self.currentTab.getDocumentTitle(baseName=True) if html: tmpname = basename+'.html' self.saveHtml(tmpname) else: tmpname = basename + self.currentTab.getMarkupClass().default_extension self.currentTab.saveTextToFile(fileName=tmpname, addToWatcher=False) command = command.replace('%of', '"out'+defaultext+'"') command = command.replace('%html' if html else '%if', '"'+tmpname+'"') try: Popen(str(command), shell=True).wait() except Exception as error: errorstr = str(error) QMessageBox.warning(self, '', self.tr('Failed to execute the command:') + '\n' + errorstr) QFile(tmpname).remove() if of: QFile('out'+defaultext).rename(fileName) def autoSaveActive(self, ind=None): tab = self.currentTab if ind is None else self.tabWidget.widget(ind).tab return (self.autoSaveEnabled and tab.fileName and QFileInfo(tab.fileName).isWritable()) def modificationChanged(self, changed): if self.autoSaveActive(): changed = False self.actionSave.setEnabled(changed) self.setWindowModified(changed) def clipboardDataChanged(self): mimeData = QApplication.instance().clipboard().mimeData() if mimeData is not None: self.actionPaste.setEnabled(mimeData.hasText()) def insertChars(self, chars): tc = self.currentTab.editBox.textCursor() if tc.hasSelection(): selection = tc.selectedText() if selection.startswith(chars) and selection.endswith(chars): if len(selection) > 2*len(chars): selection = selection[len(chars):-len(chars)] tc.insertText(selection) else: tc.insertText(chars+tc.selectedText()+chars) else: tc.insertText(chars) def insertTag(self, ut): if not ut: return if isinstance(ut, int): ut = self.usefulTags[ut - 1] arg = ' style=""' if ut == 'span' else '' tc = self.currentTab.editBox.textCursor() if ut == 'img': toinsert = ('') elif ut == 'a': toinsert = ('' + tc.selectedText() + '') else: toinsert = '<'+ut+arg+'>'+tc.selectedText()+'' tc.insertText(toinsert) self.tagsBox.setCurrentIndex(0) def insertSymbol(self, num): if num: self.currentTab.editBox.insertPlainText('&'+self.usefulChars[num-1]+';') self.symbolBox.setCurrentIndex(0) def fileChanged(self, fileName): ind = None for testind, tab in enumerate(self.iterateTabs()): if tab.fileName == fileName: ind = testind if ind is None: self.fileSystemWatcher.removePath(fileName) self.tabWidget.setCurrentIndex(ind) if not QFile.exists(fileName): self.currentTab.editBox.document().setModified(True) QMessageBox.warning(self, '', self.tr( 'This file has been deleted by other application.\n' 'Please make sure you save the file before exit.')) elif not self.currentTab.editBox.document().isModified(): # File was not modified in ReText, reload silently self.currentTab.readTextFromFile() self.currentTab.updatePreviewBox() else: text = self.tr( 'This document has been modified by other application.\n' 'Do you want to reload the file (this will discard all ' 'your changes)?\n') if self.autoSaveEnabled: text += self.tr( 'If you choose to not reload the file, auto save mode will ' 'be disabled for this session to prevent data loss.') messageBox = QMessageBox(QMessageBox.Warning, '', text) reloadButton = messageBox.addButton(self.tr('Reload'), QMessageBox.YesRole) messageBox.addButton(QMessageBox.Cancel) messageBox.exec() if messageBox.clickedButton() is reloadButton: self.currentTab.readTextFromFile() self.currentTab.updatePreviewBox() else: self.autoSaveEnabled = False self.currentTab.editBox.document().setModified(True) if fileName not in self.fileSystemWatcher.files(): # https://github.com/retext-project/retext/issues/137 self.fileSystemWatcher.addPath(fileName) def maybeSave(self, ind): tab = self.tabWidget.widget(ind).tab if self.autoSaveActive(ind): tab.saveTextToFile() return True if not tab.editBox.document().isModified(): return True self.tabWidget.setCurrentIndex(ind) ret = QMessageBox.warning(self, '', self.tr("The document has been modified.\nDo you want to save your changes?"), QMessageBox.Save | QMessageBox.Discard | QMessageBox.Cancel) if ret == QMessageBox.Save: return self.saveFile(False) elif ret == QMessageBox.Cancel: return False return True def closeEvent(self, closeevent): for ind in range(self.tabWidget.count()): if not self.maybeSave(ind): return closeevent.ignore() if globalSettings.saveWindowGeometry and not self.isMaximized(): globalSettings.windowGeometry = self.saveGeometry() closeevent.accept() def viewHtml(self): htmlDlg = HtmlDialog(self) try: htmltext = self.currentTab.getHtml(includeStyleSheet=False, includeTitle=False) except Exception: return self.printError() winTitle = self.currentTab.getDocumentTitle(baseName=True) htmlDlg.setWindowTitle(winTitle+" ("+self.tr("HTML code")+")") htmlDlg.textEdit.setPlainText(htmltext.rstrip()) htmlDlg.hl.rehighlight() htmlDlg.show() htmlDlg.raise_() htmlDlg.activateWindow() def openHelp(self): QDesktopServices.openUrl(QUrl('https://github.com/retext-project/retext/wiki')) def aboutDialog(self): QMessageBox.about(self, self.aboutWindowTitle, '

' + (self.tr('ReText %s (using PyMarkups %s)') % (app_version, markups.__version__)) +'

' + self.tr('Simple but powerful editor' ' for Markdown and reStructuredText') +'

'+self.tr('Author: Dmitry Shachnev, 2011').replace('2011', '2011\u2013' '2015') +'
'+self.tr('Website') +' | ' +self.tr('Markdown syntax') +' | ' +self.tr('reStructuredText syntax')+'

') def setDefaultMarkup(self, markupClass): self.defaultMarkup = markupClass defaultName = markups.get_available_markups()[0].name writeToSettings('defaultMarkup', markupClass.name, defaultName) for tab in self.iterateTabs(): if not tab.fileName: tab.setMarkupClass(markupClass) tab.updatePreviewBox() self.docTypeChanged() ReText-5.3.1/ReText/xsettings.py0000644000175000017500000001536212700242644017422 0ustar dmitrydmitry00000000000000# This file is part of ReText # Copyright: 2015 Dmitry Shachnev # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # This is implementation of XSettings specification, described at # import ctypes import ctypes.util import struct class _xcb_reply_t(ctypes.Structure): # this can be used instead of xcb_intern_atom_reply_t, # xcb_get_selection_owner_reply_t, etc _fields_ = [('response_type', ctypes.c_uint8), ('pad0', ctypes.c_uint8), ('sequence', ctypes.c_uint16), ('length', ctypes.c_uint32), ('payload', ctypes.c_uint32)] class _xcb_cookie_t(ctypes.Structure): # this can be used instead of xcb_intern_atom_cookie_t, # xcb_get_selection_owner_cookie_t, etc _fields_ = [('sequence', ctypes.c_uint)] _xcb_error_messages = [ None, 'XCB error: socket, pipe and other stream error', 'XCB connection closed: extension unsupported', 'XCB connection closed: insufficient memory', 'XCB connection closed: request length exceeded', 'XCB connection closed: DISPLAY parse error', 'XCB connection closed: invalid screen' ] class XSettingsError(RuntimeError): pass class XSettingsParseError(XSettingsError): pass def get_raw_xsettings(display=0): # initialize the libraries xcb_library_name = ctypes.util.find_library('xcb') if xcb_library_name is None: raise XSettingsError('Xcb library not found') xcb = ctypes.CDLL(xcb_library_name) c_library_name = ctypes.util.find_library('c') if c_library_name is None: raise XSettingsError('C library not found') c = ctypes.CDLL(c_library_name) # set some args and return types xcb.xcb_connect.argtypes = [ctypes.c_char_p, ctypes.POINTER(ctypes.c_int)] xcb.xcb_connect.restype = ctypes.c_void_p xcb.xcb_connection_has_error.argtypes = [ctypes.c_void_p] xcb.xcb_connection_has_error.restype = ctypes.c_int xcb.xcb_disconnect.argtypes = [ctypes.c_void_p] xcb.xcb_disconnect.restype = None xcb.xcb_intern_atom.argtypes = [ctypes.c_void_p, ctypes.c_uint8, ctypes.c_uint16, ctypes.c_char_p] xcb.xcb_intern_atom.restype = _xcb_cookie_t xcb.xcb_intern_atom_reply.argtypes = [ctypes.c_void_p, _xcb_cookie_t, ctypes.c_void_p] xcb.xcb_intern_atom_reply.restype = ctypes.POINTER(_xcb_reply_t) xcb.xcb_get_selection_owner.argtypes = [ctypes.c_void_p, ctypes.c_uint32] xcb.xcb_get_selection_owner.restype = _xcb_cookie_t xcb.xcb_get_selection_owner_reply.argtypes = [ctypes.c_void_p, _xcb_cookie_t, ctypes.c_void_p] xcb.xcb_get_selection_owner_reply.restype = ctypes.POINTER(_xcb_reply_t) xcb.xcb_get_property.argtypes = [ctypes.c_void_p, ctypes.c_uint8, ctypes.c_uint32, ctypes.c_uint32, ctypes.c_uint32, ctypes.c_uint32] xcb.xcb_get_property.restype = _xcb_cookie_t xcb.xcb_get_property_reply.argtypes = [ctypes.c_void_p, _xcb_cookie_t, ctypes.c_void_p] xcb.xcb_get_property_reply.restype = ctypes.c_void_p xcb.xcb_get_property_value_length.argtypes = [ctypes.c_void_p] xcb.xcb_get_property_value_length.restype = ctypes.c_int xcb.xcb_get_property_value.argtypes = [ctypes.c_void_p] xcb.xcb_get_property_value.restype = ctypes.c_void_p # open the connection connection = xcb.xcb_connect(None, None) error = xcb.xcb_connection_has_error(connection) if error: raise XSettingsError(_xcb_error_messages[error]) # get selection atom cookie buffer = ('_XSETTINGS_S%d' % display).encode() cookie = xcb.xcb_intern_atom(connection, 0, len(buffer), buffer) # get selection atom reply reply = xcb.xcb_intern_atom_reply(connection, cookie, None) selection_atom = reply.contents.payload c.free(reply) # get selection owner cookie cookie = xcb.xcb_get_selection_owner(connection, selection_atom) # get selection owner reply reply = xcb.xcb_get_selection_owner_reply(connection, cookie, None) window = reply.contents.payload c.free(reply) # get settings atom cookie buffer = b'_XSETTINGS_SETTINGS' cookie = xcb.xcb_intern_atom(connection, 0, len(buffer), buffer) # get settings atom reply reply = xcb.xcb_intern_atom_reply(connection, cookie, None) settings_atom = reply.contents.payload c.free(reply) # get property cookie cookie = xcb.xcb_get_property(connection, 0, window, settings_atom, 0, 0, 0x2000) # get property reply reply = xcb.xcb_get_property_reply(connection, cookie, None) if reply is not None: length = xcb.xcb_get_property_value_length(reply) pointer = xcb.xcb_get_property_value(reply) if length else None result = ctypes.string_at(pointer, length) c.free(reply) # close the connection xcb.xcb_disconnect(connection) # handle possible errors if reply is None or not length: raise XSettingsError('XSettings not available') return result def parse_xsettings(raw_xsettings): if len(raw_xsettings) < 12: raise XSettingsParseError('length < 12') if raw_xsettings[0] not in (0, 1): raise XSettingsParseError('wrong order byte: %d' % raw_xsettings[0]) byte_order = '<>'[raw_xsettings[0]] settings_count = struct.unpack(byte_order + 'I', raw_xsettings[8:12])[0] TypeInteger, TypeString, TypeColor = range(3) result = {} raw_xsettings = raw_xsettings[12:] offset = 0 for i in range(settings_count): setting_type = raw_xsettings[offset] offset += 2 name_length = struct.unpack(byte_order + 'H', raw_xsettings[offset:offset + 2])[0] offset += 2 name = raw_xsettings[offset:offset + name_length] offset += name_length if offset & 3: offset += 4 - (offset & 3) offset += 4 # skip last-change-serial if setting_type == TypeInteger: value = struct.unpack(byte_order + 'I', raw_xsettings[offset:offset + 4])[0] offset += 4 elif setting_type == TypeString: value_length = struct.unpack(byte_order + 'I', raw_xsettings[offset:offset + 4])[0] offset += 4 value = raw_xsettings[offset:offset + value_length] offset += value_length if offset & 3: offset += 4 - (offset & 3) elif setting_type == TypeColor: value = struct.unpack(byte_order + 'HHHH', raw_xsettings[offset:offset + 8]) offset += 8 else: raise XSettingsParseError('Wrong setting type: %d' % setting_type) result[name] = value return result def get_xsettings(display=0): raw_xsettings = get_raw_xsettings(display) return parse_xsettings(raw_xsettings) ReText-5.3.1/ReText/dialogs.py0000644000175000017500000000424212701272775017020 0ustar dmitrydmitry00000000000000# This file is part of ReText # Copyright: 2012-2015 Dmitry Shachnev # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . from ReText import globalSettings from ReText.highlighter import ReTextHighlighter from PyQt5.QtWidgets import QCheckBox, QDialog, QDialogButtonBox, \ QLabel, QLineEdit, QTextEdit, QVBoxLayout class HtmlDialog(QDialog): def __init__(self, parent=None): QDialog.__init__(self, parent) self.resize(700, 600) verticalLayout = QVBoxLayout(self) self.textEdit = QTextEdit(self) self.textEdit.setReadOnly(True) self.textEdit.setFont(globalSettings.editorFont) self.hl = ReTextHighlighter(self.textEdit.document()) self.hl.docType = 'html' verticalLayout.addWidget(self.textEdit) buttonBox = QDialogButtonBox(self) buttonBox.setStandardButtons(QDialogButtonBox.Close) buttonBox.rejected.connect(self.close) verticalLayout.addWidget(buttonBox) class LocaleDialog(QDialog): def __init__(self, parent, defaultText=""): QDialog.__init__(self, parent) verticalLayout = QVBoxLayout(self) self.label = QLabel(self) self.label.setText(self.tr('Enter locale name (example: en_US)')) verticalLayout.addWidget(self.label) self.localeEdit = QLineEdit(self) self.localeEdit.setText(defaultText) verticalLayout.addWidget(self.localeEdit) self.checkBox = QCheckBox(self.tr('Set as default'), self) verticalLayout.addWidget(self.checkBox) buttonBox = QDialogButtonBox(self) buttonBox.setStandardButtons(QDialogButtonBox.Cancel | QDialogButtonBox.Ok) verticalLayout.addWidget(buttonBox) buttonBox.accepted.connect(self.accept) buttonBox.rejected.connect(self.reject) ReText-5.3.1/ReText/highlighter.py0000644000175000017500000001271112700242644017663 0ustar dmitrydmitry00000000000000# This file is part of ReText # Copyright: 2012-2015 Dmitry Shachnev # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . from ReText import settings import re from PyQt5.QtCore import Qt from PyQt5.QtGui import QColor, QFont, QSyntaxHighlighter, QTextCharFormat reHtmlTags = re.compile('<[^<>@]*>') reHtmlSymbols = re.compile(r'&#?\w+;') reHtmlStrings = re.compile('"[^"<]*"(?=[^<]*>)') reHtmlComments = re.compile('') reAsterisks = re.compile(r'(?.+') reReSTDirects = re.compile(r'\.\. [a-z]+::') reReSTRoles = re.compile(':[a-z]+:') reTextileHdrs = re.compile(r'^h[1-6][()<>=]*\.\s.+') reTextileQuot = re.compile(r'^bq\.\s.+') reWords = re.compile('[^_\\W]+', flags=re.UNICODE) reSpacesOnEnd = re.compile(r'\s+$', flags=re.UNICODE) defaultColorScheme = { 'htmlTags': Qt.darkMagenta, 'htmlSymbols': Qt.darkCyan, 'htmlStrings': Qt.darkYellow, 'htmlComments': Qt.gray, 'markdownLinks': Qt.blue, 'blockquotes': Qt.darkGray, 'restDirectives': Qt.darkMagenta, 'restRoles': Qt.darkRed, 'whitespaceOnEnd': QColor(0xf0, 0xf0, 0xd2) } colorScheme = {} def updateColorScheme(settings=settings): settings.beginGroup('ColorScheme') for key in defaultColorScheme: if settings.contains(key): colorScheme[key] = settings.value(key, type=QColor) else: colorScheme[key] = defaultColorScheme[key] settings.endGroup() updateColorScheme() class ReTextHighlighter(QSyntaxHighlighter): dictionary = None docType = None def highlightBlock(self, text): patterns = ( # regex, color, font style, italic, underline (reHtmlTags, 'htmlTags', QFont.Bold), # 0 (reHtmlSymbols, 'htmlSymbols', QFont.Bold), # 1 (reHtmlStrings, 'htmlStrings', QFont.Bold), # 2 (reHtmlComments, 'htmlComments', QFont.Normal), # 3 (reAsterisks, None, QFont.Normal, True), # 4 (reUnderline, None, QFont.Normal, True), # 5 (reDblAsterisks, None, QFont.Bold), # 6 (reDblUnderline, None, QFont.Bold), # 7 (reTrpAsterisks, None, QFont.Bold, True), # 8 (reTrpUnderline, None, QFont.Bold, True), # 9 (reMkdHeaders, None, QFont.Black), # 10 (reMkdLinksImgs, 'markdownLinks', QFont.Normal), # 11 (reMkdLinkRefs, None, QFont.Normal, True, True), # 12 (reBlockQuotes, 'blockquotes', QFont.Normal), # 13 (reReSTDirects, 'restDirectives', QFont.Bold), # 14 (reReSTRoles, 'restRoles', QFont.Bold), # 15 (reTextileHdrs, None, QFont.Black), # 16 (reTextileQuot, 'blockquotes', QFont.Normal), # 17 (reAsterisks, None, QFont.Bold), # 18 (reDblUnderline, None, QFont.Normal, True), # 19 ) patternsDict = { 'Markdown': (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13), 'reStructuredText': (4, 6, 14, 15), 'Textile': (0, 5, 6, 16, 17, 18, 19), 'html': (0, 1, 2, 3) } # Syntax highlighter if self.docType in patternsDict: for number in patternsDict[self.docType]: pattern = patterns[number] charFormat = QTextCharFormat() charFormat.setFontWeight(pattern[2]) if pattern[1] != None: charFormat.setForeground(colorScheme[pattern[1]]) if len(pattern) >= 4: charFormat.setFontItalic(pattern[3]) if len(pattern) >= 5: charFormat.setFontUnderline(pattern[4]) for match in pattern[0].finditer(text): self.setFormat(match.start(), match.end() - match.start(), charFormat) for match in reSpacesOnEnd.finditer(text): charFormat = QTextCharFormat() charFormat.setBackground(colorScheme['whitespaceOnEnd']) self.setFormat(match.start(), match.end() - match.start(), charFormat) # Spell checker if self.dictionary: charFormat = QTextCharFormat() charFormat.setUnderlineColor(Qt.red) charFormat.setUnderlineStyle(QTextCharFormat.SpellCheckUnderline) for match in reWords.finditer(text): finalFormat = QTextCharFormat() finalFormat.merge(charFormat) finalFormat.merge(self.format(match.start())) if not self.dictionary.check(match.group(0)): self.setFormat(match.start(), match.end() - match.start(), finalFormat) ReText-5.3.1/ReText/tab.py0000644000175000017500000002266112701275717016150 0ustar dmitrydmitry00000000000000# This file is part of ReText # Copyright: 2015 Dmitry Shachnev # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . from markups import get_markup_for_file_name from markups.common import MODULE_HOME_PAGE from ReText import app_version, enchant, enchant_available, globalSettings from ReText.editor import ReTextEdit from ReText.highlighter import ReTextHighlighter try: from ReText.fakevimeditor import ReTextFakeVimHandler except ImportError: ReTextFakeVimHandler = None from PyQt5.QtCore import Qt, QDir, QFile, QFileInfo, QObject, QTextStream, QTimer, QUrl from PyQt5.QtGui import QDesktopServices from PyQt5.QtWidgets import QTextBrowser, QTextEdit, QSplitter from PyQt5.QtWebKit import QWebSettings from PyQt5.QtWebKitWidgets import QWebPage, QWebView PreviewDisabled, PreviewLive, PreviewNormal = range(3) class ReTextTab(QObject): def __init__(self, parent, fileName, previewState=PreviewDisabled): QObject.__init__(self, parent) self.p = parent self.fileName = fileName self.editBox = ReTextEdit(self) self.previewBox = self.createPreviewBox() self.markup = self.getMarkup() self.previewState = previewState self.previewBlocked = False textDocument = self.editBox.document() self.highlighter = ReTextHighlighter(textDocument) if enchant_available and parent.actionEnableSC.isChecked(): self.highlighter.dictionary = enchant.Dict(parent.sl or None) self.highlighter.rehighlight() self.highlighter.docType = self.markup.name self.editBox.textChanged.connect(self.updateLivePreviewBox) self.editBox.undoAvailable.connect(parent.actionUndo.setEnabled) self.editBox.redoAvailable.connect(parent.actionRedo.setEnabled) self.editBox.copyAvailable.connect(parent.actionCopy.setEnabled) textDocument.modificationChanged.connect(parent.modificationChanged) self.updateBoxesVisibility() def createWebView(self): webView = QWebView() if not globalSettings.handleWebLinks: webView.page().setLinkDelegationPolicy(QWebPage.DelegateExternalLinks) webView.page().linkClicked.connect(QDesktopServices.openUrl) settings = webView.settings() settings.setAttribute(QWebSettings.LocalContentCanAccessFileUrls, False) settings.setDefaultTextEncoding('utf-8') return webView def createPreviewBox(self): if globalSettings.useWebKit: return self.createWebView() browser = ReTextPreview(self) return browser def getSplitter(self): splitter = QSplitter(Qt.Horizontal) # Give both boxes a minimum size so the minimumSizeHint will be # ignored when splitter.setSizes is called below for widget in self.editBox, self.previewBox: widget.setMinimumWidth(125) splitter.addWidget(widget) splitter.setSizes((50, 50)) splitter.setChildrenCollapsible(False) splitter.tab = self return splitter def getMarkupClass(self): if self.fileName: markupClass = get_markup_for_file_name( self.fileName, return_class=True) if markupClass: return markupClass return self.p.defaultMarkup def getMarkup(self): markupClass = self.getMarkupClass() if markupClass and markupClass.available(): return markupClass(filename=self.fileName) def getDocumentTitle(self, baseName=False): if self.markup and not baseName: text = self.editBox.toPlainText() try: return self.markup.get_document_title(text) except Exception: self.p.printError() if self.fileName: fileinfo = QFileInfo(self.fileName) basename = fileinfo.completeBaseName() return (basename if basename else fileinfo.fileName()) return self.tr("New document") def getHtml(self, includeStyleSheet=True, includeTitle=True, includeMeta=False, webenv=False): if self.markup is None: markupClass = self.getMarkupClass() errMsg = self.tr('Could not parse file contents, check if ' 'you have the necessary module ' 'installed!') try: errMsg %= markupClass.attributes[MODULE_HOME_PAGE] except (AttributeError, KeyError): # Remove the link if markupClass doesn't have the needed attribute errMsg = errMsg.replace('', '').replace('', '') return '

%s

' % errMsg text = self.editBox.toPlainText() headers = '' if includeStyleSheet: headers += '\n' cssFileName = self.getDocumentTitle(baseName=True) + '.css' if QFile(cssFileName).exists(): headers += ('\n' % cssFileName) if includeMeta: headers += ('\n' % app_version) fallbackTitle = self.getDocumentTitle() if includeTitle else '' return self.markup.get_whole_html(text, custom_headers=headers, include_stylesheet=includeStyleSheet, fallback_title=fallbackTitle, webenv=webenv) def updatePreviewBox(self): self.previewBlocked = False if isinstance(self.previewBox, QTextEdit): scrollbar = self.previewBox.verticalScrollBar() scrollbarValue = scrollbar.value() distToBottom = scrollbar.maximum() - scrollbarValue else: frame = self.previewBox.page().mainFrame() scrollpos = frame.scrollPosition() try: html = self.getHtml() except Exception: return self.p.printError() if isinstance(self.previewBox, QTextEdit): self.previewBox.setHtml(html) self.previewBox.document().setDefaultFont(globalSettings.font) # If scrollbar was at bottom (and that was not the same as top), # set it to bottom again if scrollbarValue: newValue = scrollbar.maximum() - distToBottom scrollbar.setValue(newValue) else: settings = self.previewBox.settings() settings.setFontFamily(QWebSettings.StandardFont, globalSettings.font.family()) settings.setFontSize(QWebSettings.DefaultFontSize, globalSettings.font.pointSize()) self.previewBox.setHtml(html, QUrl.fromLocalFile(self.fileName)) frame.setScrollPosition(scrollpos) def updateLivePreviewBox(self): if self.previewState == PreviewLive and not self.previewBlocked: self.previewBlocked = True QTimer.singleShot(1000, self.updatePreviewBox) def updateBoxesVisibility(self): self.editBox.setVisible(self.previewState < PreviewNormal) self.previewBox.setVisible(self.previewState > PreviewDisabled) def setMarkupClass(self, markupClass): self.markup = None if markupClass and markupClass.available: self.markup = markupClass(filename=self.fileName) self.highlighter.docType = markupClass.name if markupClass else None self.highlighter.rehighlight() def readTextFromFile(self, encoding=None): openfile = QFile(self.fileName) openfile.open(QFile.ReadOnly) stream = QTextStream(openfile) encoding = encoding or globalSettings.defaultCodec if encoding: stream.setCodec(encoding) text = stream.readAll() openfile.close() markupClass = get_markup_for_file_name(self.fileName, return_class=True) self.setMarkupClass(markupClass) modified = bool(encoding) and (self.editBox.toPlainText() != text) self.editBox.setPlainText(text) self.editBox.document().setModified(modified) def saveTextToFile(self, fileName=None, addToWatcher=True): if fileName is None: fileName = self.fileName self.p.fileSystemWatcher.removePath(fileName) savefile = QFile(fileName) result = savefile.open(QFile.WriteOnly) if result: savestream = QTextStream(savefile) if globalSettings.defaultCodec: savestream.setCodec(globalSettings.defaultCodec) savestream << self.editBox.toPlainText() savefile.close() if result and addToWatcher: self.p.fileSystemWatcher.addPath(fileName) return result def installFakeVimHandler(self): if ReTextFakeVimHandler: fakeVimEditor = ReTextFakeVimHandler(self.editBox, self) fakeVimEditor.setSaveAction(self.actionSave) fakeVimEditor.setQuitAction(self.actionQuit) # TODO: action is bool, really call remove? self.p.actionFakeVimMode.triggered.connect(fakeVimEditor.remove) class ReTextPreview(QTextBrowser): """ When links like [test](test) are clicked, the file test.md is opened. It has to be located next to the current opened file. Relative pathes like [test](../test) or [test](folder/test) are also possible. """ def __init__(self, tab): QTextBrowser.__init__(self) self.tab = tab # if set to True, links to other files will unsuccessfully be opened as anchors self.setOpenLinks(False) self.anchorClicked.connect(self.openInternal) def openInternal(self, link): url = link.url() isLocalHtml = (link.scheme() in ('file', '') and url.endswith('.html')) if url.startswith('#'): self.scrollToAnchor(url[1:]) elif link.isRelative() and get_markup_for_file_name(url, return_class=True): fileToOpen = QDir.current().filePath(url) if not QFileInfo(fileToOpen).completeSuffix() and self.fileName: fileToOpen += '.' + QFileInfo(self.tab.fileName).completeSuffix() self.tab.p.openFileWrapper(fileToOpen) elif globalSettings.handleWebLinks and isLocalHtml: self.setSource(link) else: QDesktopServices.openUrl(link) ReText-5.3.1/ReText/icontheme.py0000644000175000017500000000306612701272775017354 0ustar dmitrydmitry00000000000000# This file is part of ReText # Copyright: 2015 Dmitry Shachnev # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . def get_from_xsettings(): from ReText.xsettings import get_xsettings, XSettingsError try: xsettings = get_xsettings() except XSettingsError: return if b'Net/IconThemeName' in xsettings: return xsettings[b'Net/IconThemeName'].decode() if b'Net/FallbackIconTheme' in xsettings: return xsettings[b'Net/FallbackIconTheme'].decode() def get_from_gsettings(): try: from gi.repository import Gio except ImportError: return schema = 'org.gnome.desktop.interface' if schema in Gio.Settings.list_schemas(): settings = Gio.Settings.new(schema) return settings.get_string('icon-theme') def get_from_gtk(): try: from gi.repository import Gtk except ImportError: return settings = Gtk.Settings.get_default() return settings.get_property('gtk-icon-theme-name') def get_icon_theme(): return (get_from_xsettings() or get_from_gsettings() or get_from_gtk()) ReText-5.3.1/ReText/editor.py0000644000175000017500000002426212701275717016667 0ustar dmitrydmitry00000000000000# This file is part of ReText # Copyright: 2012-2015 Dmitry Shachnev # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . from markups import MarkdownMarkup from ReText import globalSettings, tablemode, readFromSettings from PyQt5.QtCore import QSize, Qt from PyQt5.QtGui import QColor, QKeyEvent, QPainter, QPalette, QTextCursor, QTextFormat from PyQt5.QtWidgets import QLabel, QTextEdit, QWidget colors = { 'marginLine': QColor(0xdc, 0xd2, 0xdc), 'currentLineHighlight': QColor(0xff, 0xff, 0xc8), 'infoArea': QColor(0xaa, 0xff, 0x55, 0xaa), 'lineNumberArea': Qt.cyan, 'lineNumberAreaText': Qt.darkCyan } colorValues = { colorName: readFromSettings( 'ColorScheme/' + colorName, QColor, default=colors[colorName]) for colorName in colors } def documentIndentMore(document, cursor, globalSettings=globalSettings): if cursor.hasSelection(): block = document.findBlock(cursor.selectionStart()) end = document.findBlock(cursor.selectionEnd()).next() cursor.beginEditBlock() while block != end: cursor.setPosition(block.position()) if globalSettings.tabInsertsSpaces: cursor.insertText(' ' * globalSettings.tabWidth) else: cursor.insertText('\t') block = block.next() cursor.endEditBlock() else: indent = globalSettings.tabWidth - (cursor.positionInBlock() % globalSettings.tabWidth) if globalSettings.tabInsertsSpaces: cursor.insertText(' ' * indent) else: cursor.insertText('\t') def documentIndentLess(document, cursor, globalSettings=globalSettings): if cursor.hasSelection(): block = document.findBlock(cursor.selectionStart()) end = document.findBlock(cursor.selectionEnd()).next() else: block = document.findBlock(cursor.position()) end = block.next() cursor.beginEditBlock() while block != end: cursor.setPosition(block.position()) if document.characterAt(cursor.position()) == '\t': cursor.deleteChar() else: pos = 0 while document.characterAt(cursor.position()) == ' ' \ and pos < globalSettings.tabWidth: pos += 1 cursor.deleteChar() block = block.next() cursor.endEditBlock() class ReTextEdit(QTextEdit): def __init__(self, parent): QTextEdit.__init__(self) self.tab = parent self.parent = parent.p self.undoRedoActive = False self.tableModeEnabled = False self.setAcceptRichText(False) self.lineNumberArea = LineNumberArea(self) self.infoArea = InfoArea(self) self.updateFont() self.document().blockCountChanged.connect(self.updateLineNumberAreaWidth) self.cursorPositionChanged.connect(self.highlightCurrentLine) self.document().contentsChange.connect(self.contentsChange) def updateFont(self): self.setFont(globalSettings.editorFont) metrics = self.fontMetrics() self.marginx = (self.document().documentMargin() + metrics.width(' ' * globalSettings.rightMargin)) self.setTabStopWidth(globalSettings.tabWidth * self.fontMetrics().width(' ')) self.updateLineNumberAreaWidth() self.infoArea.updateTextAndGeometry() def paintEvent(self, event): if not globalSettings.rightMargin: return QTextEdit.paintEvent(self, event) painter = QPainter(self.viewport()) painter.setPen(colorValues['marginLine']) y1 = self.rect().topLeft().y() y2 = self.rect().bottomLeft().y() painter.drawLine(self.marginx, y1, self.marginx, y2) QTextEdit.paintEvent(self, event) def scrollContentsBy(self, dx, dy): QTextEdit.scrollContentsBy(self, dx, dy) self.lineNumberArea.update() def lineNumberAreaPaintEvent(self, event): painter = QPainter(self.lineNumberArea) painter.fillRect(event.rect(), colorValues['lineNumberArea']) cursor = QTextCursor(self.document()) cursor.movePosition(QTextCursor.Start) atEnd = False while not atEnd: rect = self.cursorRect(cursor) block = cursor.block() if block.isVisible(): number = str(cursor.blockNumber() + 1) painter.setPen(colorValues['lineNumberAreaText']) painter.drawText(0, rect.top(), self.lineNumberArea.width()-2, self.fontMetrics().height(), Qt.AlignRight, number) cursor.movePosition(QTextCursor.EndOfBlock) atEnd = cursor.atEnd() if not atEnd: cursor.movePosition(QTextCursor.NextBlock) def contextMenuEvent(self, event): text = self.toPlainText() dictionary = self.tab.highlighter.dictionary if (dictionary is None) or not text: return QTextEdit.contextMenuEvent(self, event) oldcursor = self.textCursor() cursor = self.cursorForPosition(event.pos()) pos = cursor.positionInBlock() if pos == len(text): pos -= 1 curchar = text[pos] isalpha = curchar.isalpha() cursor.select(QTextCursor.WordUnderCursor) if not isalpha or (oldcursor.hasSelection() and oldcursor.selectedText() != cursor.selectedText()): return QTextEdit.contextMenuEvent(self, event) self.setTextCursor(cursor) word = cursor.selectedText() if not word or dictionary.check(word): self.setTextCursor(oldcursor) return QTextEdit.contextMenuEvent(self, event) suggestions = dictionary.suggest(word) actions = [self.parent.act(sug, trig=self.fixWord(sug)) for sug in suggestions] menu = self.createStandardContextMenu() menu.insertSeparator(menu.actions()[0]) for action in actions[::-1]: menu.insertAction(menu.actions()[0], action) menu.exec(event.globalPos()) def fixWord(self, correctword): return lambda: self.insertPlainText(correctword) def keyPressEvent(self, event): key = event.key() cursor = self.textCursor() if event.text() and self.tableModeEnabled: cursor.beginEditBlock() if key == Qt.Key_Backspace and event.modifiers() & Qt.GroupSwitchModifier: # Workaround for https://bugreports.qt.io/browse/QTBUG-49771 event = QKeyEvent(event.type(), event.key(), event.modifiers() ^ Qt.GroupSwitchModifier) if key == Qt.Key_Tab: documentIndentMore(self.document(), cursor) elif key == Qt.Key_Backtab: documentIndentLess(self.document(), cursor) elif key == Qt.Key_Return and not cursor.hasSelection(): if event.modifiers() & Qt.ShiftModifier: # Insert Markdown-style line break markupClass = self.tab.getMarkupClass() if markupClass and markupClass == MarkdownMarkup: cursor.insertText(' ') if event.modifiers() & Qt.ControlModifier: cursor.insertText('\n') self.ensureCursorVisible() else: self.handleReturn(cursor) else: QTextEdit.keyPressEvent(self, event) if event.text() and self.tableModeEnabled: cursor.endEditBlock() def handleReturn(self, cursor): # Select text between the cursor and the line start cursor.movePosition(QTextCursor.StartOfBlock, QTextCursor.KeepAnchor) text = cursor.selectedText() length = len(text) pos = 0 while pos < length and (text[pos] in (' ', '\t') or text[pos:pos+2] in ('* ', '- ')): pos += 1 # Reset the cursor cursor = self.textCursor() cursor.insertText('\n'+text[:pos]) self.ensureCursorVisible() def lineNumberAreaWidth(self): if not globalSettings.lineNumbersEnabled: return 0 cursor = QTextCursor(self.document()) cursor.movePosition(QTextCursor.End) digits = len(str(cursor.blockNumber() + 1)) return 5 + self.fontMetrics().width('9') * digits def updateLineNumberAreaWidth(self, blockcount=0): self.lineNumberArea.update() self.setViewportMargins(self.lineNumberAreaWidth(), 0, 0, 0) def resizeEvent(self, event): QTextEdit.resizeEvent(self, event) rect = self.contentsRect() self.lineNumberArea.setGeometry(rect.left(), rect.top(), self.lineNumberAreaWidth(), rect.height()) self.infoArea.updateTextAndGeometry() def highlightCurrentLine(self): if not globalSettings.highlightCurrentLine: return self.setExtraSelections([]) selection = QTextEdit.ExtraSelection(); selection.format.setBackground(colorValues['currentLineHighlight']) selection.format.setProperty(QTextFormat.FullWidthSelection, True) selection.cursor = self.textCursor() selection.cursor.clearSelection() self.setExtraSelections([selection]) def enableTableMode(self, enable): self.tableModeEnabled = enable def backupCursorPositionOnLine(self): return self.textCursor().positionInBlock() def restoreCursorPositionOnLine(self, positionOnLine): cursor = self.textCursor() cursor.setPosition(cursor.block().position() + positionOnLine) self.setTextCursor(cursor) def contentsChange(self, pos, removed, added): if self.tableModeEnabled: markupClass = self.tab.getMarkupClass() cursorPosition = self.backupCursorPositionOnLine() tablemode.adjustTableToChanges(self.document(), pos, added - removed, markupClass) self.restoreCursorPositionOnLine(cursorPosition) class LineNumberArea(QWidget): def __init__(self, editor): QWidget.__init__(self, editor) self.editor = editor def sizeHint(self): return QSize(self.editor.lineNumberAreaWidth(), 0) def paintEvent(self, event): if globalSettings.lineNumbersEnabled: return self.editor.lineNumberAreaPaintEvent(event) class InfoArea(QLabel): def __init__(self, editor): QWidget.__init__(self, editor) self.editor = editor self.editor.cursorPositionChanged.connect(self.updateTextAndGeometry) self.updateTextAndGeometry() self.setAutoFillBackground(True) palette = self.palette() palette.setColor(QPalette.Window, colorValues['infoArea']) self.setPalette(palette) def updateTextAndGeometry(self): text = self.getText() self.setText(text) viewport = self.editor.viewport() metrics = self.fontMetrics() width = metrics.width(text) height = metrics.height() self.resize(width, height) rightSide = viewport.width() + self.editor.lineNumberAreaWidth() self.move(rightSide - width, viewport.height() - height) self.setVisible(not globalSettings.useFakeVim) def getText(self): template = '%d : %d' cursor = self.editor.textCursor() block = cursor.blockNumber() + 1 position = cursor.positionInBlock() return template % (block, position) ReText-5.3.1/data/0000755000175000017500000000000012701277415014514 5ustar dmitrydmitry00000000000000ReText-5.3.1/data/me.mitya57.ReText.desktop0000644000175000017500000000337512700242644021223 0ustar dmitrydmitry00000000000000[Desktop Entry] Version=1.0 Name=ReText Comment=Simple text editor for Markdown and reStructuredText Comment[ca]=Editor de Markdown i reStructuredText senzill alhora que potent Comment[cs]=Jednoduchý editor pro Markdown a reStructuredText Comment[cy]=Golygydd testun syml ar gyfer Markdown a reStructuredText Comment[da]=Enkel editor til Markdown og reStructuredText Comment[de]=Einfacher Texteditor für Markdown und reStructuredText Comment[es]=Editor básico de texto para Markdown y reStructuredText Comment[et]=Lihtne tekstiredaktor Markdown ning reStructuredText süntaksitele Comment[eu]=Markdown et reStructuredText-erako editore sinple Comment[fr]=Éditeur de texte simple pour Markdown et reStructuredText Comment[hu]=Egyszerű Markdown és reStructuredText szövegszerkesztő Comment[it]=Semplice editor di testo per Markdown e reStructuredText Comment[ja]=MarkdownとreStructuredTextのためのシンプルで強力なエディタ Comment[pl]=Prosty edytor Markdown i reStructuredText Comment[pt_BR]=Editor simples para Markdown e reStructuredText Comment[ru]=Простой редактор для Markdown и reStructuredText Comment[sr]=Једноставан уређивач за Markdown и reStructuredText Comment[sr@latin]=Jednostavan uređivač za Markdown i reStructuredText Comment[uk]=Простий текстовий редактор для Markdown та reStructuredText Comment[sk]=Jednoduchý textový editor pre Markdown a reStructuredText Comment[zh_CN]=支持 Markdown 和 reStructuredText 语法的简易文本编辑器 Comment[zh_TW]=簡單高效的 Markdown 與 reStructuredText 編輯器 Categories=Office;WordProcessor; Exec=retext %F Type=Application Icon=retext MimeType=text/x-markdown;text/x-rst; Keywords=Text;Editor;Markdown;reStructuredText; ReText-5.3.1/data/me.mitya57.ReText.appdata.xml0000644000175000017500000000526112700242644021757 0ustar dmitrydmitry00000000000000 me.mitya57.ReText.desktop ReText Simple text editor for Markdown and reStructuredText Editor de Markdown i reStructuredText senzill alhora que potent Jednoduchý editor pro Markdown a reStructuredText Golygydd testun syml ar gyfer Markdown a reStructuredText Enkel editor til Markdown og reStructuredText Einfacher Texteditor für Markdown und reStructuredText Editor básico de texto para Markdown y reStructuredText Lihtne tekstiredaktor Markdown ning reStructuredText süntaksitele Markdown et reStructuredText-erako editore sinple Éditeur de texte simple pour Markdown et reStructuredText Egyszerű Markdown és reStructuredText szövegszerkesztő Semplice editor di testo per Markdown e reStructuredText MarkdownとreStructuredTextのためのシンプルで強力なエディタ Prosty edytor Markdown i reStructuredText Editor simples para Markdown e reStructuredText Простой редактор для Markdown и reStructuredText Једноставан уређивач за Markdown и reStructuredText Jednostavan uređivač za Markdown i reStructuredText Простий текстовий редактор для Markdown та reStructuredText Jednoduchý textový editor pre Markdown a reStructuredText 支持 Markdown 和 reStructuredText 语法的简易文本编辑器 簡單高效的 Markdown 與 reStructuredText 編輯器 https://github.com/retext-project/retext CC0 GPL-2.0+ retext https://a.fsdn.com/con/app/proj/retext/screenshots/retext-kde5.png Dmitry Shachnev mitya57_AT_gmail.com ReText-5.3.1/LICENSE_GPL0000644000175000017500000010575512556404212015322 0ustar dmitrydmitry00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 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 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . ReText-5.3.1/configuration.md0000644000175000017500000001235112701276155016776 0ustar dmitrydmitry00000000000000ReText stores all of its configuration in a text file. A path to that file is printed to stdout during ReText startup. Possible configuration options ============================== Configuration options that you can set to improve your experience: option name | type | description ----------- | ---- | ----------- `appStyleSheet` | file path | file containing a Qt stylesheet file `autoSave` | boolean | whether to automatically save documents (default: false) `defaultCodec` | string | name of encoding to use by default (default: use system encoding) `defaultMarkup` | string | name of markup to use for unknown files `editorFont` | string | font to use for editor: name (default: `monospace`) `editorFontSize` | integer | font to use for editor: font size `font` | string | font to use for previews: name `fontSize` | integer | font to use for previews: font size `handleWebLinks` | boolean | whether to use ReText preview area to open external links (default: false) `hideToolBar` | boolean | whether to hide the toolbars from the UI (default: false) `highlightCurrentLine` | boolean | whether to highlight current line in editor (default: false) `iconTheme` | string | name of the system icon theme to use (see below) `lineNumbersEnabled` | boolean | whether to show column with line numbers in editor (default: false) `livePreviewByDefault` | boolean | whether new tabs and windows should open in live preview mode (default: false) `markdownDefaultFileExtension` | string | default file extension for Markdown files (default: `.mkd`) `pygmentsStyle` | string | name of Pygments syntax highlighting style to use (default: `default`) `restDefaultFileExtension` | string | default file extension for reStructuredText files (default: `.rst`) `rightMargin` | integer | enable drawing of vertical line on defined position (or 0 to disable) `saveWindowGeometry` | boolean | whether to restore window geometry from previous session (default: false) `spellCheck` | boolean | whether to enable spell checking `spellCheckLocale` | string | short name of spell check locale to use (examples: `en_US`, `ru`, `pt_BR`) `styleSheet` | file path | CSS file to use in preview area `tabInsertsSpaces` | boolean | whether Tab key should insert spaces instead of tabs (default: true) `tabWidth` | integer | the width of tab character (default: 4) `uiLanguage` | string | short name of locale to use for interface (examples: `en_US, `ru, `pt_BR`) `useFakeVim` | boolean | whether to use the FakeVim editor, if available (default: false) `useWebKit` | boolean | whether to use the WebKit instead of QTextEdit as HTML previewer (default: false) If the type is 'file path', then the value should be an absolute path to a file. These options can be set internally by ReText and should never be set manually: `recentFileList` and `windowGeometry`. Icon themes =========== If ReText starts and does not show icons, go to Preferences dialog and fill the "icon theme" field with the icon theme being used. By default Qt (the toolkit used by ReText) can correctly detect icon theme only on KDE and on a fixed list of Gtk+-based environments (when the gtk platformtheme is used). If you don't know name of your icon theme, look at the names of subdirectories in `/usr/share/icons/` directory. Color scheme setting ==================== It is possible to configure ReText highlighter to use custom colors set, by providing these colors in a separate section in the configuration file. The example of such section is: [ColorScheme] htmlTags=green htmlSymbols=#ff8800 htmlComments=#abc Color names for the text editor: color name | main setting | description ---------- | ------------ | ----------- `marginLine` | `rightMargin` | the vertical right margin line `currentLineHighlight` | `highlightCurrentLine` | highlighting of the text line being edited `infoArea` | | the info box in the bottom-right corner `lineNumberArea` | `lineNumbersEnabled` | the line numbers area background `lineNumberAreaText` | `lineNumbersEnabled` | the line numbers area foreground Color names for the highlighter: color name | description ---------- | ----------- `htmlTags` | HTML tags, i.e. `` `htmlStrings` | string properties inside HTML tags, i.e. `"baz"` inside `` `htmlSymbols` | HTML symbols, i.e. `&bar;` `htmlComments` | HTML comments, i.e. `` `markdownLinks` | Markdown links and images text, i.e. `foo` inside `[foo](http://example.com)` `blockquotes` | blockquotes, i.e. `> quote` in Markdown `restDirectives` | reStructuredText directives, i.e. `.. math::` `restRoles` | reStructuredText roles, i.e. `:math:` `whitespaceOnEnd` | whitespace at line endings ReText-5.3.1/PKG-INFO0000644000175000017500000000223312701277415014700 0ustar dmitrydmitry00000000000000Metadata-Version: 1.1 Name: ReText Version: 5.3.1 Summary: Simple editor for Markdown and reStructuredText Home-page: https://github.com/retext-project/retext Author: Dmitry Shachnev Author-email: mitya57@gmail.com License: GPL 2+ Description: ReText is simple text editor that supports Markdown and reStructuredText markup languages. It is written in Python using PyQt libraries. It supports live preview, tabs, math formulas, export to various formats including PDF and HTML. For more details, please go to the `home page`_ or to the `wiki`_. .. _`home page`: https://github.com/retext-project/retext .. _`wiki`: https://github.com/retext-project/retext/wiki Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Environment :: X11 Applications :: Qt Classifier: License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+) Classifier: Programming Language :: Python :: 3 :: Only Classifier: Topic :: Text Editors Classifier: Topic :: Text Processing :: Markup Requires: docutils Requires: Markdown Requires: Markups Requires: pyenchant Requires: Pygments ReText-5.3.1/locale/0000755000175000017500000000000012701277415015042 5ustar dmitrydmitry00000000000000ReText-5.3.1/locale/retext_ca.qm0000644000175000017500000001452112701277414017361 0ustar dmitrydmitry00000000000000 / @ la v( mdul necessari</a>.aCould not parse file contents, check if you have the necessary module installed! ReTextTabDocument nou New document ReTextTab%s fitxers%s files ReTextWindowSobre QtAbout Qt ReTextWindowSobre ReText About ReText ReTextWindow(Tots els fitxers (*) All files (*) ReTextWindow8Autor: Dmitry Shachnev, 2011Author: Dmitry Shachnev, 2011 ReTextWindowNegretaBold ReTextWindowpNo s'ha pogut desar el fitxer perqu noms s de lectura,Cannot save to file because it is read-only! ReTextWindow.Majscules i minsculesCase sensitively ReTextWindow CopiaCopy ReTextWindowRetallaCut ReTextWindow EditaEdit ReTextWindow&Barra d'eines Edita Edit toolbar ReTextWindow ActivaEnable ReTextWindowExportaExport ReTextWindow Exporta documentExport document ReTextWindow2Exporta el document a ODTExport document to ODT ReTextWindow4Exporta document com a PDFExport document to PDF ReTextWindowdS'ha produt un error a l'executar el comandament:Failed to execute the command: ReTextWindow FitxerFile ReTextWindow(Barra d'eines Fitxer File toolbar ReTextWindowCerca el text Find text ReTextWindowFormata Formatting ReTextWindow2Mode de pantalla completaFullscreen mode ReTextWindow0Obtingueu ajuda en lniaGet help online ReTextWindowCodi HTML HTML code ReTextWindow4Fitxers HTML (*.html *htm)HTML files (*.html *.htm) ReTextWindow AjudaHelp ReTextWindowCursivaItalic ReTextWindow.Vista prvia en directe Live preview ReTextWindow Sintaxi markdownMarkdown syntax ReTextWindowNouNew ReTextWindowDocument nou New document ReTextWindowSegentNext ReTextWindowObreOpen ReTextWindowObre recents Open recent ReTextWindowHFitxers de text OpenDocument (*.odt)OpenDocument text files (*.odt) ReTextWindow&Fitxers PDF (*.pdf)PDF files (*.pdf) ReTextWindowEnganxaPaste ReTextWindow Text pla (*.txt)Plain text (*.txt) ReTextWindowDdeseu el fitxer en algun directori Please, save the file somewhere. ReTextWindowVista prviaPreview ReTextWindow PreviPrevious ReTextWindowImprimeixPrint ReTextWindow$Imprimeix documentPrint document ReTextWindow2Imprimeix la vista prvia Print preview ReTextWindowSurtQuit ReTextWindow RefsRedo ReTextWindowDesaSave ReTextWindowAnomena i desaSave as ReTextWindowDesa el fitxer Save file ReTextWindow CercaSearch ReTextWindow,Barra d'eines de CercaSearch toolbar ReTextWindowLSeleccioneu un o ms fitxers per obrir#Select one or several files to open ReTextWindow$Estableix l'idioma Set locale ReTextWindow&Mostra el directoriShow directory ReTextWindow~Editor de Markdown i reStructuredText senzill alhora que potent ConfigDialog Behavior 動作設定 Automatically save documents 文書を自動保存する Restore window geometry ウィンドウの表示位置を記憶する Open external links in ReText window 外部リンクを ReText ウィンドウ内で開く Markdown syntax extensions (comma-separated) Markdown記法の拡張(カンマ区切り) Editor エディタ Highlight current line カーソル行をハイライト表示する Show line numbers 行番号を表示する Tab key inserts spaces タブをスペースに展開 Tabulation width タブの桁数 Display right margin at column 右マージン表示桁 Interface 外観 Icon theme name アイコンテーマ名 Stylesheet file スタイルシートファイル Help ヘルプ Use live preview by default FileSelectButton (none) (未設定) Select file to open ファイルを開く LocaleDialog Enter locale name (example: en_US) ロケール名を入力してください (例:ja_JP) Set as default デフォルトにする Proxy No write since last change (add ! to override) Information ReTextTab New document 新規文書 Could not parse file contents, check if you have the <a href="%s">necessary module</a> installed! ファイルの内容を解析できません。<a href="%s">必要なモジュール</a> がインストールされているか確認してください。 ReTextWindow File toolbar ファイルツールバー Edit toolbar 編集ツールバー Search toolbar 検索ツールバー New 新規 Open 開く Set encoding 文字エンコーディング Reload 再読み込み Save 保存 Save as 名前を付けて保存 Next tab 次のタブへ Previous tab 前のタブへ Print 印刷 Print preview 印刷プレビュー View HTML code HTMLコードを表示 Change editor font エディターのフォントを変更 Change preview font プレビューのフォントを変更 Find text テキストを検索 Preview プレビュー Live preview ライブプレビュー Table mode 表組みモード FakeVim mode 擬似Vimモード Fullscreen mode フルスクリーンモード Preferences 設定 Quit 終了 Undo 元に戻す Redo やり直す Copy コピー Cut 切り取り Paste 貼り付け Enable 有効 Set locale ロケールの設定 Use WebKit renderer WebKitレンダラーを使用 Show directory ディレクトリを表示 Next 次へ Previous 前へ Get help online オンラインでヘルプを読む About ReText ReTextについて About Qt Qtについて Bold 太字 Italic 斜体 Underline 下線 Tags タグ Symbols シンボル File ファイル Edit 編集 Help ヘルプ Open recent 最近使用したファイル Export エクスポート Spell check スペルチェック Default markup デフォルトマークアップ Formatting 書式 Search 検索 Case sensitively 大文字と小文字を区別 New document 新規文書 Please, save the file somewhere. どこかにファイルを保存してください。 Select one or several files to open 開きたいファイル(複数可)を選択してください Supported files サポートされているファイル All files (*) すべてのファイル (*) Select file encoding from the list: ファイルの文字エンコーディングを選んでください: Plain text (*.txt) プレーンテキスト (*.txt) %s files Example of final string: Markdown files %s ファイル Save file ファイルを保存 Cannot save to file because it is read-only! 読み取り専用ファイルのため保存できません。 Export document to ODT 文書をODTにエクスポート OpenDocument text files (*.odt) OpenDocumentテキストファイル (*.odt) HTML files (*.html *.htm) HTMLファイル (*.html *.htm) Export document to PDF 文書をPDFにエクスポート PDF files (*.pdf) PDFファイル (*.pdf) Print document 文書を印刷 Export document 文書をエクスポート Failed to execute the command: コマンドの実行に失敗しました: This file has been deleted by other application. Please make sure you save the file before exit. このファイルは他のアプリケーションによって削除されました。 終了する前にファイルを保存して下さい。 This document has been modified by other application. Do you want to reload the file (this will discard all your changes)? この文書は他のアプリケーションによって変更されました。 再読み込みを行いますか(全ての変更は失われます)? If you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. 再読み込みを選択しない場合、データの消失を避けるために自動保存機能はこのセッションで無効になります。 The document has been modified. Do you want to save your changes? 文書は変更されています。 変更内容を保存しますか? HTML code HTMLコード ReText %s (using PyMarkups %s) ReText %s(PyMarkups %s 利用) Simple but powerful editor for Markdown and reStructuredText Markdown と reStructuredText のためのシンプルでパワフルなエディタ Author: Dmitry Shachnev, 2011 作者: Dmitry Shachnev, 2011 Website Webサイト Markdown syntax Markdown 記法 reStructuredText syntax reStructuredText 文法 ReText-5.3.1/locale/retext_cy.ts0000644000175000017500000004604312701277257017433 0ustar dmitrydmitry00000000000000 ConfigDialog Behavior Automatically save documents Restore window geometry Open external links in ReText window Editor Highlight current line Show line numbers Tab key inserts spaces Tabulation width Display right margin at column Interface Icon theme name Stylesheet file Markdown syntax extensions (comma-separated) Help Cymorth Use live preview by default FileSelectButton (none) Select file to open LocaleDialog Enter locale name (example: en_US) Set as default Proxy No write since last change (add ! to override) Information ReTextTab New document Dogfen newydd Could not parse file contents, check if you have the <a href="%s">necessary module</a> installed! Methu â dosrannu cynnwys y ffeil. Gwiriwch os ydych chi wedi arsefydlu'r <a href="%s">modiwl hanfodol</a>. ReTextWindow File toolbar Bar offer ffeiliau Edit toolbar Bar offer golygu Search toolbar Bar offer chwilio New Newydd Open Agor Save Cadw Save as Cadw fel Print Argraffu Print preview Rhagolwg argraffu View HTML code Dangos cod HTML Find text Canfod testun Preview Rhagolwg Live preview Rhagolwg byw Fullscreen mode Modd sgrin llawn Quit Gadael Undo Dadwneud Redo Ailwneud Copy Copi Cut Torri Paste Gludo Enable Galluogi Set locale Gosod iaith Use WebKit renderer Defnyddio rendrydd Webkit Next Nesaf Previous Cynt Get help online Cymorth ar-lein About ReText Tua ReText About Qt Ynghylch Qt Bold Bras Italic Italig Underline Tanlinellu Tags Tagiau Symbols Symbolau File Ffeil Edit Golygu Help Cymorth Open recent Agor diweddar Export Allforio Spell check Gwirio sillafu Formatting Fformatio Search Chwilio Case sensitively Gan cas New document Dogfen newydd Please, save the file somewhere. Cadwch y ffeil i leoliad arall. Show directory Dangos cyfeiriadur Select one or several files to open Dewis un neu sawl ffeil i'w hagor Supported files Ffeiliau a gynhaliwyd All files (*) Pob ffeil (*) Plain text (*.txt) Testun plaen (*.txt) %s files Example of final string: Markdown files %s ffeil Save file Cadw ffeil Cannot save to file because it is read-only! Methu â chadw i ffeil gan ei bod yn darllen yn unig Export document to ODT Allforio dogfen i ODT OpenDocument text files (*.odt) Ffeiliau testun OpenDocument (*.odt) HTML files (*.html *.htm) Ffeiliau HTML (*.html *.htm) Export document to PDF Allforio dogfen i PDF PDF files (*.pdf) Ffeiliau PDF (*.pdf) Print document Argraffu dogfen Export document Allforio dogfen Failed to execute the command: Methwyd â rhedeg y gorchymyn: The document has been modified. Do you want to save your changes? Cafodd y ddogfen hon ei haddasu. Ydych chi am gadw'ch newidiadau? HTML code Cod HTML Simple but powerful editor for Markdown and reStructuredText Golygydd syml ond pwerus ar gyfer Markdown a reStructuredText Author: Dmitry Shachnev, 2011 Awdur: Dmitry Shachnev, 2011 Website Gwefan Markdown syntax Cystrawen markdown reStructuredText syntax Cystrawen reStructuredText Default markup Preferences Set encoding Select file encoding from the list: Reload Next tab Previous tab Table mode FakeVim mode This file has been deleted by other application. Please make sure you save the file before exit. This document has been modified by other application. Do you want to reload the file (this will discard all your changes)? If you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. Change editor font Change preview font ReText %s (using PyMarkups %s) ReText-5.3.1/locale/retext_ru.ts0000644000175000017500000005274412701277260017445 0ustar dmitrydmitry00000000000000 ConfigDialog Behavior Поведение Automatically save documents Автоматически сохранять документы Restore window geometry Сохранять геометрию окна Open external links in ReText window Открывать внешние ссылки в окне ReText Markdown syntax extensions (comma-separated) Расширения синтаксиса Markdown (разделённые запятыми) Editor Редактор Highlight current line Подсвечивать текущую строку Show line numbers Показывать номера строк Tab key inserts spaces Tab вставляет пробелы Tabulation width Ширина табуляции Display right margin at column Показывать разделитель в столбце Interface Внешний вид Icon theme name Тема значков Stylesheet file Файл стиля Qt Help Справка Use live preview by default Включить живой просмотр по умолчанию FileSelectButton (none) (не выбран) Select file to open Выберите файл для открытия LocaleDialog Enter locale name (example: en_US) Введите код локали (например: en_US) Set as default Установить по умолчанию Proxy No write since last change (add ! to override) Есть несохранённые изменения (добавьте ! для игнорирования) Information Информация ReTextTab New document Новый документ Could not parse file contents, check if you have the <a href="%s">necessary module</a> installed! Не удалось обработать содержимое файла, убедитесь, что установлен <a href="%s">необходимый модуль</a>! ReTextWindow File toolbar Панель файла Edit toolbar Панель редактирования Search toolbar Панель поиска New Новый Open Открыть Set encoding Установить кодировку Reload Загрузить заново Save Сохранить Save as Сохранить как Next tab Следующая вкладка Previous tab Предыдущая вкладка Print Распечатать Print preview Предпросмотр печати View HTML code Просмотр кода HTML Change editor font Изменить шрифт редактора Change preview font Изменить шрифт просмотра Find text Поиск текста Preview Просмотр Live preview Живой просмотр Table mode Режим редактирования таблиц FakeVim mode Режим FakeVim Fullscreen mode Полноэкранный режим Preferences Настройки Quit Выход Undo Отменить действие Redo Повторить действие Copy Копировать Cut Вырезать Paste Вставить Enable Включить Set locale Установить локаль Use WebKit renderer Использовать движок WebKit Show directory Открыть папку Next Следующее Previous Предыдущее Get help online Получить помощь в интернете About ReText О ReText About Qt О Qt Bold Полужирный Italic Курсив Underline Подчёркивание Tags Теги Symbols Символы File Файл Edit Правка Help Справка Open recent Открыть последние Export Экспорт Spell check Проверка орфографии Default markup Язык разметки по умолчанию Formatting Форматирование Search Поиск Case sensitively Учитывать регистр New document Новый документ Please, save the file somewhere. Сначала сохраните файл. Select one or several files to open Выберите один или несколько файлов для открытия Supported files Поддерживаемые файлы All files (*) Все файлы (*) Select file encoding from the list: Выберите кодировку файла из списка: Plain text (*.txt) Простой текст (*.txt) %s files Example of final string: Markdown files Файлы %s Save file Сохранить файл Cannot save to file because it is read-only! Невозможно сохранить в файл, так как он доступен только для чтения! Export document to ODT Экспортировать документ как ODT OpenDocument text files (*.odt) Файлы текста OpenDocument (*.odt) HTML files (*.html *.htm) Файлы HTML (*.html *.htm) Export document to PDF Экспортировать документ как PDF PDF files (*.pdf) Файлы PDF (*.pdf) Print document Распечатать документ Export document Экспортировать документ Failed to execute the command: Невозможно запустить команду: This file has been deleted by other application. Please make sure you save the file before exit. Этот файл был удалён другим приложением. Пожалуйста, убедитесь перед выходом, что вы сохранили файл. This document has been modified by other application. Do you want to reload the file (this will discard all your changes)? Этот документ был изменён другим приложением. Хотите ли вы загрузить файл заново (это отменит все ваши изменения)? If you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. Если вы решите не перезагружать файл, режим автоматического сохранения будет отключён для этого сеанса в целях предотвращения потери данных. The document has been modified. Do you want to save your changes? Документ был изменён. Сохранить изменения? HTML code код HTML ReText %s (using PyMarkups %s) ReText %s (использует PyMarkups %s) Simple but powerful editor for Markdown and reStructuredText Простой, но мощный редактор для Markdown и reStructuredText Author: Dmitry Shachnev, 2011 Автор: Dmitry Shachnev, 2011 Website Веб-сайт Markdown syntax Синтаксис Markdown reStructuredText syntax Синтаксис reStructuredText ReText-5.3.1/locale/retext_sr@latin.ts0000644000175000017500000004672312701277260020573 0ustar dmitrydmitry00000000000000 ConfigDialog Behavior Ponašanje Automatically save documents Automatski sačuvaj dokumente Restore window geometry Upamti geometriju prozora Open external links in ReText window Otvaraj spoljne veze u ReText prozoru Markdown syntax extensions (comma-separated) Proširenja sintakse Markdown (odvojeno zapetom) Editor Uređivač Highlight current line Istakni trenutnu liniju Show line numbers Prikaži brojeve linija Tab key inserts spaces Tab ubacuje razmake Tabulation width Širina tabulacije Display right margin at column Prikaži desnu marginu u koloni Interface Sučelje Icon theme name Naziv teme ikona Stylesheet file Fajl rasporeda Help Pomoć Use live preview by default FileSelectButton (none) (ništa) Select file to open Izaberite fajl LocaleDialog Enter locale name (example: en_US) Unesite oznaku lokaliteta (npr. sr_RS) Set as default Postavi kao podrazumevano Proxy No write since last change (add ! to override) Nema upisa od poslednje izmene (dodajte ! da pregazite) Information Podaci ReTextTab New document Novi dokument Could not parse file contents, check if you have the <a href="%s">necessary module</a> installed! Ne mogu da raščlanim sadržaj fajla, Proverite da li imate instaliran <a href="%s">neophodan modul</a>! ReTextWindow File toolbar Fajl alatna traka Edit toolbar Uredi alatna traka Search toolbar Alatna traka traženja New Novo Open Otvori Set encoding Postavi kodiranje Reload Učitaj ponovo Save Sačuvaj Save as Sačuvaj kao Next tab Sledeći jezičak Previous tab Prethodni jezičak Print Štampaj Print preview Prikaz štampe View HTML code Pogledaj HTML kod Find text Nađi tekst Preview Pregled Live preview Trenutni pregled Table mode Režim tabele FakeVim mode Lažni Vim režim Fullscreen mode Režim punog ekrana Preferences Podešavanja Quit Napusti Undo Poništi Redo Ponovi Copy Kopiraj Cut Iseci Paste Nalepi Enable Uključi Set locale Postavi lokalitet Use WebKit renderer Koristi WebKit iscrtavač Show directory Prikaži direktorijum Next Sledeće Previous Prethodno Get help online Potražite pomoć na internetu About ReText O programu ReText About Qt O QT-u Bold Podebljano Italic Kurzivno Underline Podvučeno Tags Oznake Symbols Simboli File Fajl Edit Uređivanje Help Pomoć Open recent Otvori nedavne Export Izvezi Spell check Provera pravopisa Default markup Podrazumevana markacija Formatting Formatiranje Search Traži Case sensitively Osetljiv na vel. slova New document Novi dokument Please, save the file somewhere. Sačuvajte fajl negde. Select one or several files to open Izaberite jedan ili više fajlova za otvaranje Supported files Podržani fajlovi All files (*) Svi fajlovi (*) Select file encoding from the list: Sa liste izaberite kodiranje fajla: Plain text (*.txt) Običan tekst (*.txt) %s files Example of final string: Markdown files %s fajlovi Save file Sačuvaj fajl Cannot save to file because it is read-only! Ne mogu da sačuvam jer je fajl samo za čitanje! Export document to ODT Izvezi dokument u ODT OpenDocument text files (*.odt) OpenDocument tekstualni fajl (*.odt) HTML files (*.html *.htm) HTML fajlovi (*.html *.htm) Export document to PDF Izvezi dokument u PDF PDF files (*.pdf) PDF fajlovi (*.pdf) Print document Štampaj dokument Export document Izvezi dokument Failed to execute the command: Neuspelo izvršenje komande: This file has been deleted by other application. Please make sure you save the file before exit. Ovaj fajl je obrisala druga aplikacije. Sačuvajte ga pre nego što izađete. This document has been modified by other application. Do you want to reload the file (this will discard all your changes)? Ovaj dokument je izmenila druga aplikacija. Želite li da ga ponovo učitate? (ovo će poništiti sve vaše izmene) If you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. Ako izaberete da ne učitate ponovo, automatsko čuvanje biće isključeno za ovu sesiju da bi se sprečio gubitak podataka. The document has been modified. Do you want to save your changes? Dokument je izmenjen. Želite li da sačuvate vaše izmene? HTML code HTML kod Simple but powerful editor for Markdown and reStructuredText Jednostavan ali moćan uređivač za Markdown i reStructuredText Author: Dmitry Shachnev, 2011 Autor: Dmitrij Šačnev (Dmitry Shachnev), 2011 Website Web sajt Markdown syntax Sintaksa Markdown reStructuredText syntax Sintaksa reStructuredText Change editor font Change preview font ReText %s (using PyMarkups %s) ReText-5.3.1/locale/retext_zh_TW.qm0000644000175000017500000001110512701277414020024 0ustar dmitrydmitry00000000000000 ConfigDialog Behavior Automatically save documents Restore window geometry Open external links in ReText window Editor Highlight current line Show line numbers Tab key inserts spaces Tabulation width Display right margin at column Interface Icon theme name Stylesheet file Markdown syntax extensions (comma-separated) Help Ajuda Use live preview by default FileSelectButton (none) Select file to open LocaleDialog Enter locale name (example: en_US) Set as default Proxy No write since last change (add ! to override) Information ReTextTab New document Novo documento Could not parse file contents, check if you have the <a href="%s">necessary module</a> installed! ReTextWindow New document Novo documento File toolbar Barra de Ferramentas de Ficheiros Edit toolbar Editar barra de ferramentas New Novo Open Abrir Save Guardar Save as Guardar como Print Imprimir Print preview Pré-visualizar impressão View HTML code Ver código HTML Preview Pré-visualizar Live preview Pré-visualizar Quit Sair Undo Anular Redo Refazer Copy Copiar Cut Cortar Paste Colar Open recent Abrir recentes About Qt So o Qt Tags Etiquetas Symbols Símbolos File Ficheiro Edit Editar Help Ajuda Export Exportar Please, save the file somewhere. Guarde o ficheiro noutro lugar por favor. Supported files Ficheiros Suportados All files (*) Todos os ficheiros (*) Plain text (*.txt) Texto Simples (*.txt) HTML files (*.html *.htm) Ficheiros HTML (*.html *.htm) Save file Guardar Ficheiro Export document to ODT Exportar para ODT OpenDocument text files (*.odt) Abrir ficheros OpenDocument (*.odt) Export document to PDF Exportar para PDF PDF files (*.pdf) Ficheiros PDF (*.pdf) Print document Imprimir documento The document has been modified. Do you want to save your changes? O documernto foi alterado Deseja gravar as alterações? HTML code Código HTML Export document Enable Set locale Spell check Fullscreen mode Search toolbar Find text Next Previous Search Case sensitively Author: Dmitry Shachnev, 2011 Website Markdown syntax reStructuredText syntax Simple but powerful editor for Markdown and reStructuredText Select one or several files to open Get help online Show directory Cannot save to file because it is read-only! Bold Italic Underline Formatting About ReText Sobre ReText Use WebKit renderer Failed to execute the command: %s files Example of final string: Markdown files Ficheiros %s Default markup Preferences Set encoding Select file encoding from the list: Reload Next tab Previous tab Table mode FakeVim mode This file has been deleted by other application. Please make sure you save the file before exit. This document has been modified by other application. Do you want to reload the file (this will discard all your changes)? If you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. Change editor font Change preview font ReText %s (using PyMarkups %s) ReText-5.3.1/locale/retext_sr.qm0000644000175000017500000002441312701277414017423 0ustar dmitrydmitry00000000000000bdyvYc'#z(r:g b)y%:vm u#S4J!@m gr5t ;%)'9 0 Eϗ4 Ti) +I9HD.~7"  @i h> la v, <0BA:8 A0GC20X 4>:C<5=B5Automatically save documents ConfigDialog>=0H0Z5Behavior ConfigDialog<@8:068 45A=C <0@38=C C :>;>=8Display right margin at column ConfigDialog#@5R820GEditor ConfigDialog ><>[Help ConfigDialog.AB0:=8 B@5=CB=C ;8=8XCHighlight current line ConfigDialog 0782 B5<5 8:>=0Icon theme name ConfigDialog !CG5Y5 Interface ConfigDialog\0@:40C= ?@>H8@5Z0 A8=B0:A5 (>42>X5=> 70?5B><),Markdown syntax extensions (comma-separated) ConfigDialogJB20@0X A?>Y=5 2575 C  5"5:AB ?@>7>@C$Open external links in ReText window ConfigDialog2#?0<B8 35><5B@8XC ?@>7>@0Restore window geometry ConfigDialog,@8:068 1@>X525 ;8=8X0Show line numbers ConfigDialog$0X; @0A?>@540Stylesheet file ConfigDialog&"01 C10FCX5 @07<0:5Tab key inserts spaces ConfigDialog"(8@8=0 B01C;0F8X5Tabulation width ConfigDialog(=8HB0)(none)FileSelectButton7015@8B5 D0X;Select file to openFileSelectButtonL#=5A8B5 >7=0:C ;>:0;8B5B0 (=?@. sr_RS)"Enter locale name (example: en_US) LocaleDialog2>AB028 :0> ?>4@07C<520=>Set as default LocaleDialog >40F8 InformationProxyl5<0 C?8A0 >4 ?>A;54Z5 87<5=5 (4>40XB5 ! 40 ?@53078B5).No write since last change (add ! to override)Proxy5 <>3C 40 @0HG;0=8< A04@60X D0X;0, @>25@8B5 40 ;8 8<0B5 8=AB0;8@0= <a href="%s">=5>?E>40= <>4C;</a>!aCould not parse file contents, check if you have the necessary module installed! ReTextTab>28 4>:C<5=B New document ReTextTab%s D0X;>28%s files ReTextWindow C"-CAbout Qt ReTextWindow  5"5:ABC About ReText ReTextWindow!28 D0X;>28 (*) All files (*) ReTextWindowZCB>@: <8B@8X (0G=52 (Dmitry Shachnev), 2011Author: Dmitry Shachnev, 2011 ReTextWindow>451Y0=>Bold ReTextWindow\5 <>3C 40 A0GC20< X5@ X5 D0X; A0<> 70 G8B0Z5!,Cannot save to file because it is read-only! ReTextWindow*A5BY82 =0 25;. A;>20Case sensitively ReTextWindow*7<5=8 D>=B C@5R820G0Change editor font ReTextWindow(7<5=8 D>=B ?@53;540Change preview font ReTextWindow>?8@0XCopy ReTextWindow A5F8Cut ReTextWindow.>4@07C<520=0 <0@:0F8X0Default markup ReTextWindow#@5R820Z5Edit ReTextWindow$#@548 0;0B=0 B@0:0 Edit toolbar ReTextWindow #:YCG8Enable ReTextWindow 72578Export ReTextWindow72578 4>:C<5=BExport document ReTextWindow*72578 4>:C<5=B C "Export document to ODT ReTextWindow*72578 4>:C<5=B C $Export document to PDF ReTextWindow45CA?5;> 872@H5Z5 :><0=45:Failed to execute the command: ReTextWindow06=8 8< @568< FakeVim mode ReTextWindow$0X;File ReTextWindow"$0X; 0;0B=0 B@0:0 File toolbar ReTextWindow0R8 B5:AB Find text ReTextWindow$>@<0B8@0Z5 Formatting ReTextWindow$ 568< ?C=>3 5:@0=0Fullscreen mode ReTextWindow8>B@068B5 ?><>[ =0 8=B5@=5BCGet help online ReTextWindow%" :>4 HTML code ReTextWindow6%" D0X;>28 (*.html *.htm)HTML files (*.html *.htm) ReTextWindow ><>[Help ReTextWindow:> 87015@5B5 40 =5 CG8B0B5 ?>=>2>, 0CB><0BA:> GC20Z5 18[5 8A:YCG5=> 70 >2C A5A8XC 40 18 A5 A?@5G8> 3C18B0: ?>40B0:0.lIf you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. ReTextWindowC@782=>Italic ReTextWindow "@5=CB=8 ?@53;54 Live preview ReTextWindow"0@:40C= A8=B0:A0Markdown syntax ReTextWindow>2>New ReTextWindow>28 4>:C<5=B New document ReTextWindow!;545[5Next ReTextWindow!;545[8 X578G0:Next tab ReTextWindow B2>@8Open ReTextWindowB2>@8 =5402=5 Open recent ReTextWindowH?5=>:C<5=B B5:ABC0;=8 D0X; (*.odt)OpenDocument text files (*.odt) ReTextWindow&$ D0X;>28 (*.pdf)PDF files (*.pdf) ReTextWindow 0;5?8Paste ReTextWindow(18G0= B5:AB (*.txt)Plain text (*.txt) ReTextWindow*!0GC20XB5 D0X; =5345. Please, save the file somewhere. ReTextWindow>45H020Z0 Preferences ReTextWindow@53;54Preview ReTextWindow@5BE>4=>Previous ReTextWindow"@5BE>4=8 X578G0: Previous tab ReTextWindow(B0<?0XPrint ReTextWindow (B0<?0X 4>:C<5=BPrint document ReTextWindow@8:07 HB0<?5 Print preview ReTextWindow0?CAB8Quit ReTextWindow >=>28Redo ReTextWindow#G8B0X ?>=>2>Reload ReTextWindow!0GC20XSave ReTextWindow!0GC20X :0>Save as ReTextWindow!0GC20X D0X; Save file ReTextWindow "@068Search ReTextWindow(;0B=0 B@0:0 B@065Z0Search toolbar ReTextWindowD!0 ;8AB5 87015@8B5 :>48@0Z5 D0X;0:#Select file encoding from the list: ReTextWindowX7015@8B5 X540= 8;8 28H5 D0X;>20 70 >B20@0Z5#Select one or several files to open ReTextWindow >AB028 :>48@0Z5 Set encoding ReTextWindow">AB028 ;>:0;8B5B Set locale ReTextWindow(@8:068 48@5:B>@8XC<Show directory ReTextWindow54=>AB020= 0;8 <>[0= C@5R820G 70 0@:40C= 8 @5AB@C:BC8@0=8 B5:AB25@0 ?@02>?8A0 Spell check ReTextWindow >4@60=8 D0X;>28Supported files ReTextWindow!8<1>;8Symbols ReTextWindow 568< B015;5 Table mode ReTextWindow 7=0:5Tags ReTextWindown>:C<5=B X5 87<5Z5=. 5;8B5 ;8 40 A0GC20B5 20H5 87<5=5?AThe document has been modified. Do you want to save your changes? ReTextWindow20X 4>:C<5=B X5 87<5=8;0 4@C30 0?;8:0F8X0. 5;8B5 ;8 40 30 ?>=>2> CG8B0B5? (>2> [5 ?>=8HB8B8 A25 20H5 87<5=5){This document has been modified by other application. Do you want to reload the file (this will discard all your changes)?  ReTextWindow20X D0X; X5 >1@8A0;0 4@C30 0?;8:0F8X5. !0GC20XB5 30 ?@5 =53> HB> 870R5B5.`This file has been deleted by other application. Please make sure you save the file before exit. ReTextWindow>42CG5=> Underline ReTextWindow>=8HB8Undo ReTextWindow0>@8AB8 518B 8AF@B020GUse WebKit renderer ReTextWindow">3;540X %" :>4View HTML code ReTextWindow51 A0XBWebsite ReTextWindow>!8=B0:A0 @5AB@C:BC8@0=>3 B5:AB0reStructuredText syntax ReTextWindow ) , ReText-5.3.1/locale/retext_pl.ts0000644000175000017500000004577512701277260017440 0ustar dmitrydmitry00000000000000 ConfigDialog Behavior Automatically save documents Restore window geometry Open external links in ReText window Editor Highlight current line Show line numbers Tab key inserts spaces Tabulation width Display right margin at column Interface Icon theme name Stylesheet file Markdown syntax extensions (comma-separated) Help Pomoc Use live preview by default FileSelectButton (none) Select file to open LocaleDialog Enter locale name (example: en_US) Set as default Proxy No write since last change (add ! to override) Information ReTextTab New document Nowy dokument Could not parse file contents, check if you have the <a href="%s">necessary module</a> installed! ReTextWindow File toolbar Pasek pliku Edit toolbar Pasek edycji Search toolbar Pasek wyszukiwania New Nowy Open Otwórz Save Zapisz Save as Zapisz jako Print Drukuj Print preview Podgląd wydruku View HTML code Zobacz źródło HTML Find text Znajdź tekst Preview Podgląd Live preview Podgląd na żywo Fullscreen mode Pełny ekran Quit Zakończ Undo Cofnij Redo Ponów Copy Skopiuj Cut Wytnij Paste Wklej Enable Włącz Set locale Ustaw język Use WebKit renderer Używaj silnika WebKit Next Następny Previous Poprzedni Get help online Pomoc online About ReText O ReText About Qt O Qt Bold Pogrubienie Italic Kursywa Underline Podkreślenie Tags Tagi Symbols Symbole File Plik Edit Edycja Help Pomoc Open recent Otwórz ostatnie Export Eksportuj Spell check Sprawdzanie pisowni Formatting Formatowanie Search Wyszukaj Case sensitively Rozróżnianie wielkości znaków New document Nowy dokument Please, save the file somewhere. Proszę najpierw zapisać plik. Show directory Pokaż katalog Select one or several files to open Zaznacz jeden lub więcej plików do otwarcia Supported files Obsługiwane pliki All files (*) Wszystkie pliki (*) Plain text (*.txt) Zwykły tekst (*.txt) Save file Zapisz plik Cannot save to file because it is read-only! Nie można zapisać pliku, ponieważ jest on tylko do odczytu! Export document to ODT Eksportuj do ODT OpenDocument text files (*.odt) Dokumenty OpenDokument (*.odt) HTML files (*.html *.htm) Pliki HTML (*.html *.htm) Export document to PDF Eksportuj do PDF PDF files (*.pdf) Pliki PDF (*.pdf) Print document Drukuj dokument Export document Eksportuj dokument Failed to execute the command: Błąd podczas wykonywania komendy: The document has been modified. Do you want to save your changes? Dokument został zmieniony. Czy chcesz zapisać zmiany? HTML code Kod HTML Simple but powerful editor for Markdown and reStructuredText Prosty, ale potężny edytor Markdown i reStructuredText Author: Dmitry Shachnev, 2011 Autor: Dmitry Shachnev, 2011<br> Tłumaczenie: Kristian Kann, 2012 Website Strona internetowa Markdown syntax Składnia Markdown reStructuredText syntax Składnia reStructuredText %s files Example of final string: Markdown files Pliki %s Preferences Default markup Set encoding Select file encoding from the list: Reload Next tab Previous tab Table mode FakeVim mode This file has been deleted by other application. Please make sure you save the file before exit. This document has been modified by other application. Do you want to reload the file (this will discard all your changes)? If you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. Change editor font Change preview font ReText %s (using PyMarkups %s) ReText-5.3.1/locale/retext_zh_TW.ts0000644000175000017500000004554412701277260020052 0ustar dmitrydmitry00000000000000 ConfigDialog Behavior Automatically save documents Restore window geometry Open external links in ReText window Editor Highlight current line Show line numbers Tab key inserts spaces Tabulation width Display right margin at column Interface Icon theme name Stylesheet file Markdown syntax extensions (comma-separated) Help 說明 Use live preview by default FileSelectButton (none) Select file to open LocaleDialog Enter locale name (example: en_US) Set as default Proxy No write since last change (add ! to override) Information ReTextTab New document 新檔 Could not parse file contents, check if you have the <a href="%s">necessary module</a> installed! ReTextWindow Open 開啟 Save 儲存 Print 列印 Preview 預覽 Tags 書籤 Symbols 特殊符號 HTML files (*.html *.htm) HTML 檔案 (*.html *.htm) Save file 儲存檔案 Save as 另存新檔 Quit 離開 About Qt 關於 Qt File 檔案 Edit 編輯 Help 說明 Export 匯出 File toolbar 檔案工具列 Edit toolbar 編輯工具列 Export document to PDF 匯出檔案到 PDF PDF files (*.pdf) PDF 檔案 (*.pdf) The document has been modified. Do you want to save your changes? 檔案已變更,確定儲存嗎? Undo 復原 Redo 重做 Copy 複製 Cut 剪下 Paste 貼上 New document 新檔 All files (*) 所有檔案 (*) New 新增 Open recent 開啟最近的 OpenDocument text files (*.odt) Libreoffice 檔案 (*.odt) Export document to ODT 匯出檔案到 ODT View HTML code 檢視 HTML 程式碼 HTML code HTML 程式碼 Print preview 列印預覽 Print document 列印檔案 Live preview 同步預覽 Please, save the file somewhere. 請,儲存到別的地方呦! Plain text (*.txt) 純文本 (*.txt) Supported files 支持的檔案格式 Export document 匯出檔案 Enable 啟用 Set locale 選擇程式語言 Spell check 拼寫檢查 Fullscreen mode 全螢幕 Search toolbar 尋找工具列 Find text 尋找文本 Next 下一條 Previous 上一條 Search 尋找 Case sensitively 對大小写敏感 Author: Dmitry Shachnev, 2011 作者: Dmitry Shachnev, 2011 Website 部落格 Markdown syntax Markdown 句法 reStructuredText syntax reStructuredText 句法 Simple but powerful editor for Markdown and reStructuredText 簡單高效的 Markdown 與 reStructuredText 編輯器 Select one or several files to open 選擇一個或多個檔案以開啟 Get help online 在線擷取幫助(英文) Show directory 顯示目錄 Cannot save to file because it is read-only! 不能儲存檔案因为它是只讀的! Bold 加粗 Italic 傾斜 Underline 下劃線 Formatting 樣式 About ReText 關於 ReText Use WebKit renderer 使用WebKit渲染 Failed to execute the command: 不能執行指令: %s files Example of final string: Markdown files %s 檔案 Default markup Preferences Set encoding Select file encoding from the list: Reload Next tab Previous tab Table mode FakeVim mode This file has been deleted by other application. Please make sure you save the file before exit. This document has been modified by other application. Do you want to reload the file (this will discard all your changes)? If you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. Change editor font Change preview font ReText %s (using PyMarkups %s) ReText-5.3.1/locale/retext_it.ts0000644000175000017500000004577312701277260017437 0ustar dmitrydmitry00000000000000 ConfigDialog Behavior Automatically save documents Restore window geometry Open external links in ReText window Editor Highlight current line Show line numbers Tab key inserts spaces Tabulation width Display right margin at column Interface Icon theme name Stylesheet file Markdown syntax extensions (comma-separated) Help Aiuto Use live preview by default FileSelectButton (none) Select file to open LocaleDialog Enter locale name (example: en_US) Set as default Proxy No write since last change (add ! to override) Information ReTextTab New document Nuovo documento Could not parse file contents, check if you have the <a href="%s">necessary module</a> installed! ReTextWindow File toolbar Toolbar File Edit toolbar Toolbar Modifica Search toolbar Toolbar Ricerca New Nuovo Open Apri Save Salva Save as Salva con nome Print Stampa Print preview Stampa anteprima View HTML code Vedi codice HTML Find text Trova testo Preview Anteprima Live preview Anteprima in diretta Fullscreen mode Schermo intero Quit Esci Undo Annulla Redo Ripristina Copy Copia Cut Taglia Paste Incolla Enable Attiva Set locale Imposta localizzazione Use WebKit renderer Usa il motore WebKit Next Avanti Previous Indietro Get help online Ottieni aiuto online About ReText A proposito di ReText About Qt A proposito di Qt Bold Grassetto Italic Corsivo Underline Sottolineato Tags Tag Symbols Simboli File File Edit Modifica Help Aiuto Open recent Apri recente Export Esporta Spell check Correzione ortografica Formatting Formattazione Search Cerca Case sensitively Distingui maiuscole/minuscole New document Nuovo documento Please, save the file somewhere. Per favore, salva il file da qualche parte. Show directory Mostra cartella Select one or several files to open Scegli uno o più file da aprire Supported files File supportati All files (*) Tutti i file (*) Plain text (*.txt) Testo semplice (*.txt) Save file Salva file Cannot save to file because it is read-only! Non posso salvare il file perché è read-only! Export document to ODT Esporta documento in ODT OpenDocument text files (*.odt) File di testo OpenDocumenti (*.odt) HTML files (*.html *.htm) file HTML (*.html *.htm) Export document to PDF Esporta documento su PDF PDF files (*.pdf) File PDF (*.pdf) Print document Stampa documento Export document Esporta documento Failed to execute the command: Non sono riuscito ad eseguire il comando: The document has been modified. Do you want to save your changes? Questo documento è stato modificato. Vuoi salvare le tue modifiche? HTML code Codice HTML Simple but powerful editor for Markdown and reStructuredText Editor Markdown e reStructuredText semplice e potente Author: Dmitry Shachnev, 2011 Autore: Dmitry Shachnev, 2011 Website Sito web Markdown syntax Sintassi Markdown reStructuredText syntax Sintassi reStructuredText %s files Example of final string: Markdown files File %s Default markup Preferences Set encoding Select file encoding from the list: Reload Next tab Previous tab Table mode FakeVim mode This file has been deleted by other application. Please make sure you save the file before exit. This document has been modified by other application. Do you want to reload the file (this will discard all your changes)? If you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. Change editor font Change preview font ReText %s (using PyMarkups %s) ReText-5.3.1/locale/retext_sr.ts0000644000175000017500000005221712701277260017436 0ustar dmitrydmitry00000000000000 ConfigDialog Behavior Понашање Automatically save documents Аутоматски сачувај документе Restore window geometry Упамти геометрију прозора Open external links in ReText window Отварај спољне везе у РеТекст прозору Markdown syntax extensions (comma-separated) Маркдаун проширења синтаксе (одвојено запетом) Editor Уређивач Highlight current line Истакни тренутну линију Show line numbers Прикажи бројеве линија Tab key inserts spaces Таб убацује размаке Tabulation width Ширина табулације Display right margin at column Прикажи десну маргину у колони Interface Сучеље Icon theme name Назив теме икона Stylesheet file Фајл распореда Help Помоћ Use live preview by default FileSelectButton (none) (ништа) Select file to open Изаберите фајл LocaleDialog Enter locale name (example: en_US) Унесите ознаку локалитета (нпр. sr_RS) Set as default Постави као подразумевано Proxy No write since last change (add ! to override) Нема уписа од последње измене (додајте ! да прегазите) Information Подаци ReTextTab New document Нови документ Could not parse file contents, check if you have the <a href="%s">necessary module</a> installed! Не могу да рашчланим садржај фајла, Проверите да ли имате инсталиран <a href="%s">неопходан модул</a>! ReTextWindow File toolbar Фајл алатна трака Edit toolbar Уреди алатна трака Search toolbar Алатна трака тражења New Ново Open Отвори Set encoding Постави кодирање Reload Учитај поново Save Сачувај Save as Сачувај као Next tab Следећи језичак Previous tab Претходни језичак Print Штампај Print preview Приказ штампе View HTML code Погледај ХТМЛ код Change editor font Измени фонт уређивача Change preview font Измени фонт прегледа Find text Нађи текст Preview Преглед Live preview Тренутни преглед Table mode Режим табеле FakeVim mode Лажни Вим режим Fullscreen mode Режим пуног екрана Preferences Подешавања Quit Напусти Undo Поништи Redo Понови Copy Копирај Cut Исеци Paste Налепи Enable Укључи Set locale Постави локалитет Use WebKit renderer Користи ВебКит исцртавач Show directory Прикажи директоријум Next Следеће Previous Претходно Get help online Потражите помоћ на интернету About ReText О РеТексту About Qt О КуТ-у Bold Подебљано Italic Курзивно Underline Подвучено Tags Ознаке Symbols Симболи File Фајл Edit Уређивање Help Помоћ Open recent Отвори недавне Export Извези Spell check Провера правописа Default markup Подразумевана маркација Formatting Форматирање Search Тражи Case sensitively Осетљив на вел. слова New document Нови документ Please, save the file somewhere. Сачувајте фајл негде. Select one or several files to open Изаберите један или више фајлова за отварање Supported files Подржани фајлови All files (*) Сви фајлови (*) Select file encoding from the list: Са листе изаберите кодирање фајла: Plain text (*.txt) Обичан текст (*.txt) %s files Example of final string: Markdown files %s фајлови Save file Сачувај фајл Cannot save to file because it is read-only! Не могу да сачувам јер је фајл само за читање! Export document to ODT Извези документ у ОДТ OpenDocument text files (*.odt) ОпенДокумент текстуални фајл (*.odt) HTML files (*.html *.htm) ХТМЛ фајлови (*.html *.htm) Export document to PDF Извези документ у ПДФ PDF files (*.pdf) ПДФ фајлови (*.pdf) Print document Штампај документ Export document Извези документ Failed to execute the command: Неуспело извршење команде: This file has been deleted by other application. Please make sure you save the file before exit. Овај фајл је обрисала друга апликације. Сачувајте га пре него што изађете. This document has been modified by other application. Do you want to reload the file (this will discard all your changes)? Овај документ је изменила друга апликација. Желите ли да га поново учитате? (ово ће поништити све ваше измене) If you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. Ако изаберете да не учитате поново, аутоматско чување биће искључено за ову сесију да би се спречио губитак података. The document has been modified. Do you want to save your changes? Документ је измењен. Желите ли да сачувате ваше измене? HTML code ХТМЛ код ReText %s (using PyMarkups %s) Simple but powerful editor for Markdown and reStructuredText Једноставан али моћан уређивач за Маркдаун и реструктуирани текст Author: Dmitry Shachnev, 2011 Аутор: Дмитриј Шачнев (Dmitry Shachnev), 2011 Website Веб сајт Markdown syntax Маркдаун синтакса reStructuredText syntax Синтакса реструктуираног текста ReText-5.3.1/locale/retext_eu.ts0000644000175000017500000004606412701277257017434 0ustar dmitrydmitry00000000000000 ConfigDialog Behavior Automatically save documents Restore window geometry Open external links in ReText window Editor Highlight current line Show line numbers Tab key inserts spaces Tabulation width Display right margin at column Interface Icon theme name Stylesheet file Markdown syntax extensions (comma-separated) Help Laguntza Use live preview by default FileSelectButton (none) Select file to open LocaleDialog Enter locale name (example: en_US) Set as default Proxy No write since last change (add ! to override) Information ReTextTab New document Dokumentu berria Could not parse file contents, check if you have the <a href="%s">necessary module</a> installed! ReTextWindow New document Dokumentu berria File toolbar Fitxategi menu barra Edit toolbar Edizio menu barra Search toolbar Bilakera menu barra New Berria Open Ireki Save Gorde Save as Gorde honela... Print Inprimatu Print preview Inprimatzeko aurrebista View HTML code HTML iturburua ikusi Find text Bilatu testua Preview Aurrebista Live preview Aurrebista zuzenean Fullscreen mode Pantaila osoa Quit Kendu Undo Desegin Redo Berregin Copy Kopiatu Cut Ebaki Paste Itsatsi Enable Gaitu Set locale Lokala aukeratu Open recent Azken dokumentuak Next Hurrengoa Previous Aurrekoa Get help online Laguntza on-line About Qt Qt-i buruz Tags Tags Symbols Sinboloak File Fitxategia Edit Editatu Help Laguntza Export Esportatu Spell check Egiaztatu ortografia Search Bilatu Case sensitively Maiuskulak/minuskulak Please, save the file somewhere. Gorde fitxategia edonon, mesedez. Select one or several files to open Aukeratu fitzategi bat(zuk) irekitzeko Supported files Onartutako formatuak All files (*) Fitxategi guztiak (*) Plain text (*.txt) Testu arrunta (*.txt) Save file Gorde fitxategia Export document to ODT Esportatu ODT gisa OpenDocument text files (*.odt) Ireki OpenDocument testu fitxategiak (*.odt) HTML files (*.html *.htm) HTML fitxategiak (*.html, *.htm) Export document to PDF Esportatu PDF gisa PDF files (*.pdf) PDF fitxategiak (*.pdf) Print document Inprimatu dokumentua Export document Esportatu dokumentua The document has been modified. Do you want to save your changes? Dokumentua aldatu da. Aldaketak gorde nahi duzu? HTML code HTML iturburua Simple but powerful editor for Markdown and reStructuredText Markdown et reStructuredText-erako editore sinple baina boteretsua Author: Dmitry Shachnev, 2011 Egilea: Dmitry Shachnev, 2011 Website Webgune Markdown syntax Markdown sintaxia reStructuredText syntax reStructuredText sintaxia Show directory Karpeta erakutsi Cannot save to file because it is read-only! Ezin da gorde fitxategia irakurtzeko-soilik delako! Bold Italic Underline Formatting About ReText ReText-i buruz Use WebKit renderer Failed to execute the command: %s files Example of final string: Markdown files %s fitxategiak Default markup Preferences Set encoding Select file encoding from the list: Reload Next tab Previous tab Table mode FakeVim mode This file has been deleted by other application. Please make sure you save the file before exit. This document has been modified by other application. Do you want to reload the file (this will discard all your changes)? If you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. Change editor font Change preview font ReText %s (using PyMarkups %s) ReText-5.3.1/locale/retext_fr.ts0000644000175000017500000004763212701277260017426 0ustar dmitrydmitry00000000000000 ConfigDialog Behavior Comportement Automatically save documents Sauvegarde automatique des documents Restore window geometry Restaurer la taille de la fenêtre Open external links in ReText window Ouvrir les liens externes dans la fenêtre de ReText Markdown syntax extensions (comma-separated) Extensions liées à la syntaxe Markdown (séparées par une virgule) Editor Éditeur Highlight current line Surligner la ligne courante Show line numbers Afficher les numéros de ligne Tab key inserts spaces La touche Tab insère des espaces Tabulation width Largeur de tabulation Display right margin at column Afficher la marge de droite à la colonne Interface Interface Icon theme name Nom du thème d’icônes Stylesheet file Fichier de feuille de style Help Aide Use live preview by default FileSelectButton (none) (aucun) Select file to open Choisir le fichier à ouvrir LocaleDialog Enter locale name (example: en_US) Entrez le préfixe pour la langue (exemple: fr_FR) Set as default Définir par défaut Proxy No write since last change (add ! to override) Aucune modification depuis la dernière sauvegarde (ajoutez ! pour écraser) Information Information ReTextTab New document Nouveau document Could not parse file contents, check if you have the <a href="%s">necessary module</a> installed! Impossible d'analyser le contenu du fichier, vérifier si les <a href="%s">modules nécessaires</a> sont installés! ReTextWindow File toolbar Barre d'outil Fichier Edit toolbar Barre d'outil Édition Search toolbar Barre d'outil de recherche New Nouveau Open Ouvrir Set encoding Définir l'encodage Reload Recherger Save Enregistrer Save as Enregistrer Sous Next tab Onglet suivant Previous tab Onglet précédent Print Imprimer Print preview Aperçu avant impression View HTML code Voir le code HTML Find text Rechercher un texte Preview Aperçu Live preview Aperçu direct Table mode Mode table FakeVim mode Imitation de Vim Fullscreen mode Mode plein écran Preferences Préférences Quit Quitter Undo Annuler Redo Rétablir Copy Copier Cut Couper Paste Coller Enable Activer Set locale Choisir la langue Use WebKit renderer Utiliser le rendu de WebKit Show directory Afficher le répertoire Next Suivant Previous Précédent Get help online Assistance en ligne About ReText À propos de ReText About Qt À propos de Qt Bold Gras Italic Italique Underline Souligné Tags Mots-clefs Symbols Symboles File Fichier Edit Édition Help Aide Open recent Ouvrir les fichiers récents Export Exporter Spell check Vérifier l'orthographe Default markup Balisage par défaut Formatting Formatage Search Rechercher Case sensitively Sensible à la casse New document Nouveau document Please, save the file somewhere. Veuillez enregistrer le fichier quelque part. Select one or several files to open Choisir un ou plusieurs fichiers à ouvrir Supported files Formats acceptés All files (*) Tous les fichiers (*) Select file encoding from the list: Choisir l'encodage du fichier dans la liste Plain text (*.txt) Fichiers texte (*.txt) %s files Example of final string: Markdown files Fichers %s Save file Enregistrer le fichier Cannot save to file because it is read-only! Impossible d'enregistrer le fichier car il est en lecture seule ! Export document to ODT Exporter le document au format ODT OpenDocument text files (*.odt) Fichiers OpenDocument texte (*.odt) HTML files (*.html *.htm) Fichiers HTML (*.html, *.htm) Export document to PDF Exporter le document au format PDF PDF files (*.pdf) Fichiers PDF (*.pdf) Print document Imprimer le document Export document Exporter le document Failed to execute the command: Échec lors de l'exécution de la commande : This file has been deleted by other application. Please make sure you save the file before exit. Ce fichier a été supprimé par une autre application. Pensez à vérifier que vous sauvegardez le fichier avant de quitter. This document has been modified by other application. Do you want to reload the file (this will discard all your changes)? Ce document a été modifié par une autre application. Voulez-vous recharger le fichier (vos modifications seront perdues) ? If you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. Si vous choisissez de ne pas recharger le fichier, la sauvegarde automatique sera désactivée pour cette session afin d'éviter une perte de données. The document has been modified. Do you want to save your changes? Le document a été modifié. Voulez vous enregistrer vos changements ? HTML code Code HTML Simple but powerful editor for Markdown and reStructuredText Éditeur de Markdown et reStructuredText simple mais puissant Author: Dmitry Shachnev, 2011 Auteur: Dmitry Shachnev, 2011 Website Site Web Markdown syntax Syntaxe Markdown reStructuredText syntax Syntaxe reStructuredText Change editor font Change preview font ReText %s (using PyMarkups %s) ReText-5.3.1/locale/retext_pt.qm0000644000175000017500000000677412701277414017434 0ustar dmitrydmitry00000000000000modiwl hanfodol</a>.aCould not parse file contents, check if you have the necessary module installed! ReTextTabDogfen newydd New document ReTextTab%s ffeil%s files ReTextWindowYnghylch QtAbout Qt ReTextWindowTua ReText About ReText ReTextWindowPob ffeil (*) All files (*) ReTextWindow8Awdur: Dmitry Shachnev, 2011Author: Dmitry Shachnev, 2011 ReTextWindowBrasBold ReTextWindowfMethu chadw i ffeil gan ei bod yn darllen yn unig,Cannot save to file because it is read-only! ReTextWindowGan casCase sensitively ReTextWindowCopiCopy ReTextWindow TorriCut ReTextWindow GolyguEdit ReTextWindow Bar offer golygu Edit toolbar ReTextWindowGalluogiEnable ReTextWindowAllforioExport ReTextWindowAllforio dogfenExport document ReTextWindow*Allforio dogfen i ODTExport document to ODT ReTextWindow*Allforio dogfen i PDFExport document to PDF ReTextWindow:Methwyd rhedeg y gorchymyn:Failed to execute the command: ReTextWindow FfeilFile ReTextWindow$Bar offer ffeiliau File toolbar ReTextWindowCanfod testun Find text ReTextWindowFformatio Formatting ReTextWindow Modd sgrin llawnFullscreen mode ReTextWindowCymorth ar-leinGet help online ReTextWindowCod HTML HTML code ReTextWindow8Ffeiliau HTML (*.html *.htm)HTML files (*.html *.htm) ReTextWindowCymorthHelp ReTextWindow ItaligItalic ReTextWindowRhagolwg byw Live preview ReTextWindow$Cystrawen markdownMarkdown syntax ReTextWindow NewyddNew ReTextWindowDogfen newydd New document ReTextWindow NesafNext ReTextWindowAgorOpen ReTextWindowAgor diweddar Open recent ReTextWindowHFfeiliau testun OpenDocument (*.odt)OpenDocument text files (*.odt) ReTextWindow(Ffeiliau PDF (*.pdf)PDF files (*.pdf) ReTextWindow GludoPaste ReTextWindow(Testun plaen (*.txt)Plain text (*.txt) ReTextWindow>Cadwch y ffeil i leoliad arall. Please, save the file somewhere. ReTextWindowRhagolwgPreview ReTextWindowCyntPrevious ReTextWindowArgraffuPrint ReTextWindowArgraffu dogfenPrint document ReTextWindow"Rhagolwg argraffu Print preview ReTextWindow GadaelQuit ReTextWindowAilwneudRedo ReTextWindowCadwSave ReTextWindowCadw felSave as ReTextWindowCadw ffeil Save file ReTextWindowChwilioSearch ReTextWindow"Bar offer chwilioSearch toolbar ReTextWindowBDewis un neu sawl ffeil i'w hagor#Select one or several files to open ReTextWindowGosod iaith Set locale ReTextWindow$Dangos cyfeiriadurShow directory ReTextWindowzGolygydd syml ond pwerus ar gyfer Markdown a reStructuredTextbdyRYc'z]rg  bUy%v #S4J#sm r$5t'' 0 Eϗv3 T) R+I:9HD.~7%   @ h> la v HSauvegarde automatique des documentsAutomatically save documents ConfigDialogComportementBehavior ConfigDialogPAfficher la marge de droite la colonneDisplay right margin at column ConfigDialogditeurEditor ConfigDialogAideHelp ConfigDialog6Surligner la ligne couranteHighlight current line ConfigDialog*Nom du thme d icnesIcon theme name ConfigDialogInterface Interface ConfigDialogExtensions lies la syntaxe Markdown (spares par une virgule),Markdown syntax extensions (comma-separated) ConfigDialogfOuvrir les liens externes dans la fentre de ReText$Open external links in ReText window ConfigDialogBRestaurer la taille de la fentreRestore window geometry ConfigDialog:Afficher les numros de ligneShow line numbers ConfigDialog6Fichier de feuille de styleStylesheet file ConfigDialog@La touche Tab insre des espacesTab key inserts spaces ConfigDialog*Largeur de tabulationTabulation width ConfigDialog(aucun)(none)FileSelectButton6Choisir le fichier ouvrirSelect file to openFileSelectButtonbEntrez le prfixe pour la langue (exemple: fr_FR)"Enter locale name (example: en_US) LocaleDialog$Dfinir par dfautSet as default LocaleDialogInformation InformationProxyAucune modification depuis la dernire sauvegarde (ajoutez ! pour craser).No write since last change (add ! to override)ProxyImpossible d'analyser le contenu du fichier, vrifier si les <a href="%s">modules ncessaires</a> sont installs!aCould not parse file contents, check if you have the necessary module installed! ReTextTab Nouveau document New document ReTextTabFichers %s%s files ReTextWindow propos de QtAbout Qt ReTextWindow$ propos de ReText About ReText ReTextWindow*Tous les fichiers (*) All files (*) ReTextWindow:Auteur: Dmitry Shachnev, 2011Author: Dmitry Shachnev, 2011 ReTextWindowGrasBold ReTextWindowImpossible d'enregistrer le fichier car il est en lecture seule !,Cannot save to file because it is read-only! ReTextWindow&Sensible la casseCase sensitively ReTextWindow CopierCopy ReTextWindow CouperCut ReTextWindow&Balisage par dfautDefault markup ReTextWindowditionEdit ReTextWindow*Barre d'outil dition Edit toolbar ReTextWindowActiverEnable ReTextWindowExporterExport ReTextWindow(Exporter le documentExport document ReTextWindowDExporter le document au format ODTExport document to ODT ReTextWindowDExporter le document au format PDFExport document to PDF ReTextWindowTchec lors de l'excution de la commande :Failed to execute the command: ReTextWindow Imitation de Vim FakeVim mode ReTextWindowFichierFile ReTextWindow*Barre d'outil Fichier File toolbar ReTextWindow&Rechercher un texte Find text ReTextWindowFormatage Formatting ReTextWindow Mode plein cranFullscreen mode ReTextWindow&Assistance en ligneGet help online ReTextWindowCode HTML HTML code ReTextWindow:Fichiers HTML (*.html, *.htm)HTML files (*.html *.htm) ReTextWindowAideHelp ReTextWindow&Si vous choisissez de ne pas recharger le fichier, la sauvegarde automatique sera dsactive pour cette session afin d'viter une perte de donnes.lIf you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. ReTextWindowItaliqueItalic ReTextWindowAperu direct Live preview ReTextWindow Syntaxe MarkdownMarkdown syntax ReTextWindowNouveauNew ReTextWindow Nouveau document New document ReTextWindowSuivantNext ReTextWindowOnglet suivantNext tab ReTextWindow OuvrirOpen ReTextWindow6Ouvrir les fichiers rcents Open recent ReTextWindowFFichiers OpenDocument texte (*.odt)OpenDocument text files (*.odt) ReTextWindow(Fichiers PDF (*.pdf)PDF files (*.pdf) ReTextWindow CollerPaste ReTextWindow,Fichiers texte (*.txt)Plain text (*.txt) ReTextWindowZVeuillez enregistrer le fichier quelque part. Please, save the file somewhere. ReTextWindowPrfrences Preferences ReTextWindow AperuPreview ReTextWindowPrcdentPrevious ReTextWindow Onglet prcdent Previous tab ReTextWindowImprimerPrint ReTextWindow(Imprimer le documentPrint document ReTextWindow.Aperu avant impression Print preview ReTextWindowQuitterQuit ReTextWindowRtablirRedo ReTextWindowRechergerReload ReTextWindowEnregistrerSave ReTextWindow Enregistrer SousSave as ReTextWindow,Enregistrer le fichier Save file ReTextWindowRechercherSearch ReTextWindow4Barre d'outil de rechercheSearch toolbar ReTextWindowVChoisir l'encodage du fichier dans la liste#Select file encoding from the list: ReTextWindowRChoisir un ou plusieurs fichiers ouvrir#Select one or several files to open ReTextWindow$Dfinir l'encodage Set encoding ReTextWindow"Choisir la langue Set locale ReTextWindow,Afficher le rpertoireShow directory ReTextWindowxditeur de Markdown et reStructuredText simple mais puissantNbrdyYc'Sz2rHgl) b5y%v3 #S4J#'m r5tA? ''- 0 EVϗ Ti) v+I9UHD.~7$ V @s h>O la N v Dokumente automatisch speichernAutomatically save documents ConfigDialogVerhaltenBehavior ConfigDialog@Rechten Rand anzeigen bei SpalteDisplay right margin at column ConfigDialog EditorEditor ConfigDialog HilfeHelp ConfigDialog4Aktuelle Zeile hervorhebenHighlight current line ConfigDialog"Symbolschema-NameIcon theme name ConfigDialogOberflche Interface ConfigDialogtErweiterungen fr Markdown-Syntax (durch Kommata getrennt),Markdown syntax extensions (comma-separated) ConfigDialogRExterne Verweise im ReText-Fenster ffnen$Open external links in ReText window ConfigDialog,Fenster-Zustand merkenRestore window geometry ConfigDialog,Zeilennummern anzeigenShow line numbers ConfigDialog"Stilvorlage-DateiStylesheet file ConfigDialog<Tabulator fgt Leerzeichen einTab key inserts spaces ConfigDialog Tabulator-BreiteTabulation width ConfigDialog(keine)(none)FileSelectButton6Zu ffnende Datei auswhlenSelect file to openFileSelectButtonNEingabe der Lokalisierung (z.B.: de_DE)"Enter locale name (example: en_US) LocaleDialog&Als Standard setzenSet as default LocaleDialogInformation InformationProxyNichts geschrieben seit der letzten nderung (! zum berschreiben).No write since last change (add ! to override)ProxyDateiinhalte konnten nicht ausgewertet werden. berprfen Sie, ob die <a href="%s">notwendigen Module</a> installiert sind!aCould not parse file contents, check if you have the necessary module installed! ReTextTabNeues Dokument New document ReTextTab%s-Dateien%s files ReTextWindowber QtAbout Qt ReTextWindowber ReText About ReText ReTextWindow Alle Dateien (*) All files (*) ReTextWindow8Autor: Dmitry Shachnev, 2011Author: Dmitry Shachnev, 2011 ReTextWindowFettBold ReTextWindowpSpeichern ist nicht mglich, Datei ist schreibgeschtzt.,Cannot save to file because it is read-only! ReTextWindow*Gro-/KleinschreibungCase sensitively ReTextWindow4Schrift des Editors ndernChange editor font ReTextWindow6Schrift der Vorschau ndernChange preview font ReTextWindowKopierenCopy ReTextWindowAusschneidenCut ReTextWindowStandard-MarkupDefault markup ReTextWindowBearbeitenEdit ReTextWindow2Bearbeiten-Werkzeugleiste Edit toolbar ReTextWindowAktivierenEnable ReTextWindowExportierenExport ReTextWindow(Dokument exportierenExport document ReTextWindow6Dokument in ODT exportierenExport document to ODT ReTextWindow6Dokument in PDF exportierenExport document to PDF ReTextWindowLAusfhrung des Befehls fehlgeschlagen:Failed to execute the command: ReTextWindow Pseudo-Vim-Modus FakeVim mode ReTextWindow DateiFile ReTextWindow(Datei-Werkzeugleiste File toolbar ReTextWindow Suche Find text ReTextWindowFormatieren Formatting ReTextWindowVollbildmodusFullscreen mode ReTextWindow*Online Hilfe bekommenGet help online ReTextWindowHTML-Code HTML code ReTextWindow:HTML-Dateien (*.html, *.htm)HTML files (*.html *.htm) ReTextWindow HilfeHelp ReTextWindowWenn Sie die Datei nicht neu laden, wird das automatische Speichern fr diese Sitzung deaktiviert, um Datenverlust zu vermeiden. lIf you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. ReTextWindow KursivItalic ReTextWindowLive-Vorschau Live preview ReTextWindowMarkdown-SyntaxMarkdown syntax ReTextWindowNeuNew ReTextWindowNeues Dokument New document ReTextWindow WeiterNext ReTextWindowNchster ReiterNext tab ReTextWindow ffnenOpen ReTextWindow Zuletzt geffnet Open recent ReTextWindow8OpenDocument-Dateien (*.odt)OpenDocument text files (*.odt) ReTextWindow&PDF-Dateien (*.pdf)PDF files (*.pdf) ReTextWindowEinfgenPaste ReTextWindow Klartext (*.txt)Plain text (*.txt) ReTextWindowFBitte die Datei irgendwo speichern. Please, save the file somewhere. ReTextWindowEinstellungen Preferences ReTextWindowVorschauPreview ReTextWindow ZurckPrevious ReTextWindowVoriger Reiter Previous tab ReTextWindowDruckenPrint ReTextWindow Dokument druckenPrint document ReTextWindowDruckvorschau Print preview ReTextWindowBeendenQuit ReTextWindow8ReText %s (mit PyMarkups %s)ReText %s (using PyMarkups %s) ReTextWindowWiederholenRedo ReTextWindowNeu ladenReload ReTextWindowSpeichernSave ReTextWindowSpeichern unterSave as ReTextWindowDatei speichern Save file ReTextWindow SuchenSearch ReTextWindow&Such-WerkzeugleisteSearch toolbar ReTextWindowJZeichenkodierung aus Liste auswhlen:#Select file encoding from the list: ReTextWindow\Eine oder mehrere Dateien zum ffnen auswhlen#Select one or several files to open ReTextWindow4Zeichenkodierung festlegen Set encoding ReTextWindow"Spracheinstellung Set locale ReTextWindow(Verzeichnis anzeigenShow directory ReTextWindowEinfacher aber mchtiger Editor fr Markdown and reStructuredTextNbdyYc'IzBrgl) b?y%v) #S4J#am r5t 'x'[ 0 Eϗ'1 T) h+I9HD.~c7$ T @} h>] la @ v Mostar margem direita na colunaDisplay right margin at column ConfigDialog EditorEditor ConfigDialog AjudaHelp ConfigDialog(Destacar linha atualHighlight current line ConfigDialog$Nome do cone temaIcon theme name ConfigDialogInterface Interface ConfigDialoglExtenses de sintxe Markdown (separadas por vrgulas),Markdown syntax extensions (comma-separated) ConfigDialogJAbrir links externos na janela ReText$Open external links in ReText window ConfigDialog>Restaurar a geometria da janelaRestore window geometry ConfigDialog2Mostrar nmeros de linhasShow line numbers ConfigDialog$Arquivo de estilosStylesheet file ConfigDialog$Tab insere espaosTab key inserts spaces ConfigDialog(Tamanho da tabulaoTabulation width ConfigDialog(nenhum)(none)FileSelectButton>Selecione um arquivo para abrirSelect file to openFileSelectButtonZFornea o nome da localidade (exemplo: pt_BR)"Enter locale name (example: en_US) LocaleDialog&Definir como padroSet as default LocaleDialogInformao InformationProxyvO arquivo no foi salvo (adicione um '!' para sobrescrever).No write since last change (add ! to override)ProxyNo foi possvel analisar contedo do arquivo, verifique se voc tem o <a href="%s">modulo necessrio</a> instalado!aCould not parse file contents, check if you have the necessary module installed! ReTextTabNovo documento New document ReTextTab%s arquivos%s files ReTextWindowSobre QtAbout Qt ReTextWindowSobre ReText About ReText ReTextWindow*Todos os arquivos (*) All files (*) ReTextWindow8Autor: Dmitry Shachnev, 2011Author: Dmitry Shachnev, 2011 ReTextWindowNegritoBold ReTextWindow\No possvel salvar arquivo somente leitura!,Cannot save to file because it is read-only! ReTextWindowJDiferenciando maisculas e minsculasCase sensitively ReTextWindow*Mudar fonte do editorChange editor font ReTextWindow6Mudar fonte da visualizaoChange preview font ReTextWindow CopiarCopy ReTextWindowRecortarCut ReTextWindowMarcao padroDefault markup ReTextWindow EditarEdit ReTextWindow6Barra de ferramentas Editar Edit toolbar ReTextWindowHabilitarEnable ReTextWindowExportarExport ReTextWindow$Exportar documentoExport document ReTextWindow8Exportar documento para ODT Export document to ODT ReTextWindow6Exportar documento para PDFExport document to PDF ReTextWindow8Falha ao executar o comando:Failed to execute the command: ReTextWindow.Modo de entrada FakeVim FakeVim mode ReTextWindowArquivoFile ReTextWindow8Barra de ferramentas Arquivo File toolbar ReTextWindowEncontrar texto Find text ReTextWindowFormatar Formatting ReTextWindowModo tela cheiaFullscreen mode ReTextWindowAjuda onlineGet help online ReTextWindowCdigo HTML HTML code ReTextWindow:Arquivos HTML (*.html, *.htm)HTML files (*.html *.htm) ReTextWindow AjudaHelp ReTextWindowSo voc escolher por no recarregar o arquivo, o modo de autossalvamento ser desabilitado nessa sesso para prevenir a perda de dados.lIf you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. ReTextWindowItlicoItalic ReTextWindow.Visualizao automtica Live preview ReTextWindow Sintaxe MarkdownMarkdown syntax ReTextWindowNovoNew ReTextWindowNovo documento New document ReTextWindowSeguinteNext ReTextWindowPrxima abaNext tab ReTextWindow AbrirOpen ReTextWindowAbrir recente Open recent ReTextWindowLArquivos de texto OpenDocument (*.odt)OpenDocument text files (*.odt) ReTextWindow(Arquivos PDF (*.pdf)PDF files (*.pdf) ReTextWindow ColarPaste ReTextWindow*Texto simples (*.txt)Plain text (*.txt) ReTextWindow`Por favor, salve o arquivo em outra localizao. Please, save the file somewhere. ReTextWindowPreferncias Preferences ReTextWindowVisualizarPreview ReTextWindowAnteriorPrevious ReTextWindowAba anterior Previous tab ReTextWindowImprimirPrint ReTextWindow$Imprimir documentoPrint document ReTextWindow(Visualizar impresso Print preview ReTextWindowSairQuit ReTextWindow>ReText %s (usando PyMarkups %s)ReText %s (using PyMarkups %s) ReTextWindowRefazerRedo ReTextWindowRecarregarReload ReTextWindow SalvarSave ReTextWindowSalvar comoSave as ReTextWindowSalvar arquivo Save file ReTextWindowPesquisarSearch ReTextWindow<Barra de ferramentas PesquisarSearch toolbar ReTextWindowXSelecione a codificao de arquivo da lista:#Select file encoding from the list: ReTextWindowPSelecione um ou mais arquivos para abrir#Select one or several files to open ReTextWindow&Definir codificao Set encoding ReTextWindow$Definir localidade Set locale ReTextWindow Exibir diretrioShow directory ReTextWindowtSimples e poderoso editor para Markdown e reStructuredText ConfigDialog Behavior Chování Automatically save documents Automaticky ukládat dokumenty Restore window geometry Obnovit rozměry okna Open external links in ReText window Otevírat externí odkazy v okně ReTextu Editor Editor Highlight current line Zvýrazňovat aktuální řádek Show line numbers Zobrazovat čísla řádků Tab key inserts spaces Klávesa Tabulátor vkládá mezery Tabulation width Šířka tabulátoru Display right margin at column Zobrazovat pravý okraj sloupce Interface Rozhraní Icon theme name Název motivu ikon Stylesheet file Markdown syntax extensions (comma-separated) Help Nápověda Use live preview by default FileSelectButton (none) Select file to open LocaleDialog Enter locale name (example: en_US) Zadejte název lokalizace (např.: cs_CZ) Set as default Nastavit jako výchozí Proxy No write since last change (add ! to override) Information ReTextTab New document Nový dokument Could not parse file contents, check if you have the <a href="%s">necessary module</a> installed! Nelze analyzovat obsah souboru, zkontrolujte, zda máte nainstalován <a href="%s">nezbytný modul</a>! ReTextWindow File toolbar Nástrojová lišta Soubor Edit toolbar Nástrojová lišta Úpravy Search toolbar Nástrojová lišta Najít New Nový Open Otevřít Save Uložit Set encoding Nastavit kódování Save as Uložit jako Print Tisknout Print preview Náhled tisku View HTML code Zobrazit HTML kód Find text Najít text Preview Náhled Live preview Průběžný náhled Fullscreen mode Celoobrazovkový režim Preferences Nastavení Quit Ukončit Undo Zpět Redo Znovu Copy Kopírovat Cut Vyjmout Paste Vložit Enable Povolit Set locale Nastavit lokalizaci Use WebKit renderer Použít k vykreslování WebKit Next Následující Previous Předchozí Get help online Získejte nápovědu online About ReText O ReText About Qt O Qt Bold Tučné Italic Kurzíva Underline Podtržené Tags Značky Symbols Entity File Soubor Edit Upravit Help Nápověda Open recent Otevřít nedávné Export Exportovat Spell check Kontrola pravopisu Default markup Výchozí syntax Formatting Formátování Search Najít Case sensitively Rozlišovat velikost písmen New document Nový dokument Please, save the file somewhere. Soubor, prosím, někam uložte. Show directory Zobrazit složku Select one or several files to open Vyberte jeden nebo více souborů k otevření Supported files Podporované soubory All files (*) Všechny soubory (*) Select file encoding from the list: Vyberte ze seznamu kódování souboru: Plain text (*.txt) Prostý text (*.txt) %s files Example of final string: Markdown files %s soubory Save file Uložit soubor Cannot save to file because it is read-only! Nelze uložit, protože soubor je pouze pro čtení! Export document to ODT Exportovat dokument do ODT OpenDocument text files (*.odt) Textové soubory OpenDocument (*.odt) HTML files (*.html *.htm) Soubory HTML (*.html *.htm) Export document to PDF Exportovat dokument do PDF PDF files (*.pdf) Soubory PDF (*.pdf) Print document Tisknout dokument Export document Exportovat dokument Failed to execute the command: Nepodařilo se spustit příkaz: The document has been modified. Do you want to save your changes? Dokument byl změněn. Chcete uložit své změny? HTML code HTML kód Simple but powerful editor for Markdown and reStructuredText Jednoduchý, ale mocný editor pro Markdown a reStructuredText Author: Dmitry Shachnev, 2011 Autor: Dmitry Shachnev, 2011 Website Webové stránky Markdown syntax Syntax Markdownu reStructuredText syntax reStructuredText syntaxe Reload Next tab Previous tab Table mode FakeVim mode This file has been deleted by other application. Please make sure you save the file before exit. This document has been modified by other application. Do you want to reload the file (this will discard all your changes)? If you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. Change editor font Change preview font ReText %s (using PyMarkups %s) ReText-5.3.1/locale/retext_et.ts0000644000175000017500000004574412701277257017437 0ustar dmitrydmitry00000000000000 ConfigDialog Behavior Automatically save documents Restore window geometry Open external links in ReText window Editor Highlight current line Show line numbers Tab key inserts spaces Tabulation width Display right margin at column Interface Icon theme name Stylesheet file Markdown syntax extensions (comma-separated) Help Abi Use live preview by default FileSelectButton (none) Select file to open LocaleDialog Enter locale name (example: en_US) Set as default Proxy No write since last change (add ! to override) Information ReTextTab New document Uus dokument Could not parse file contents, check if you have the <a href="%s">necessary module</a> installed! ReTextWindow File toolbar Faili tööriistariba Edit toolbar Muuda tööriistariba Search toolbar Otsingu tööriistariba New Uus Open Ava Save Salvesta Save as Salvesta kui... Print Prindi Print preview Printimise eelvaade View HTML code Vaata HTML koodi Find text Leia tekst Preview Eelvaade Live preview Aktiivne eelvaade Fullscreen mode Täisekraani režiim Quit Välju Undo Võta tagasi Redo Korda Copy Kopeeri Cut Lõika Paste Aseta Enable Luba Set locale Sea regioon Use WebKit renderer Kasuta WebKit renderdajat Next Järgmine Previous Eelmine Get help online Saa abi internetist About ReText ReText kohta About Qt Qt kohta Bold Rasvane Italic Kaldu Underline Allajoonitud Tags Sildid Symbols Sümbolid File Fail Edit Muuda Help Abi Open recent Ava hiljutine Export Ekspordi Spell check Õigekirjakontroll Formatting Vormindus Search Otsi Case sensitively Tõstutundeliselt New document Uus dokument Please, save the file somewhere. Palun salvesta fail kuhugi. Show directory Näita kataloogi Select one or several files to open Vali avamiseks üks või mitu faili Supported files Toetatud failid All files (*) Kõik failid (*) Plain text (*.txt) Tavaline tekst (*.txt) Save file Salvesta fail Cannot save to file because it is read-only! Ei saa faili salvestada, kuna see fail on ainult lugemiseks! Export document to ODT Ekspordi dokument ODT formaati OpenDocument text files (*.odt) OpenDocument tekstifailid (.*odt) HTML files (*.html *.htm) HTML failid (*.html, *.htm) Export document to PDF Ekspordi dokument PDF'ina PDF files (*.pdf) PDF failid (*.pdf) Print document Prindi dokument Export document Ekspordi dokument Failed to execute the command: Järgmise käsu täitmine ebaõnnestus: The document has been modified. Do you want to save your changes? Dokumenti on muudetud. Soovid salvestada oma muudatused? HTML code HTML kood Simple but powerful editor for Markdown and reStructuredText Lihtne aga võimas Markdown ja reStructuredText redaktor Author: Dmitry Shachnev, 2011 Autor: Dmitry Shachnev, 2011 Website Veebileht Markdown syntax Markdown süntaks reStructuredText syntax reStructuredText süntaks %s files Example of final string: Markdown files %s failid Default markup Preferences Set encoding Select file encoding from the list: Reload Next tab Previous tab Table mode FakeVim mode This file has been deleted by other application. Please make sure you save the file before exit. This document has been modified by other application. Do you want to reload the file (this will discard all your changes)? If you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. Change editor font Change preview font ReText %s (using PyMarkups %s) ReText-5.3.1/locale/retext_uk.ts0000644000175000017500000004775712701277260017446 0ustar dmitrydmitry00000000000000 ConfigDialog Behavior Automatically save documents Restore window geometry Open external links in ReText window Editor Highlight current line Show line numbers Tab key inserts spaces Tabulation width Display right margin at column Interface Icon theme name Stylesheet file Markdown syntax extensions (comma-separated) Help Довідка Use live preview by default FileSelectButton (none) Select file to open LocaleDialog Enter locale name (example: en_US) Set as default Proxy No write since last change (add ! to override) Information ReTextTab New document Новий документ Could not parse file contents, check if you have the <a href="%s">necessary module</a> installed! Неможливо розпізнати вміст фалу, перевірте наявність <a href="%s">необхідних модулів</a>! ReTextWindow File toolbar Панель файлу Edit toolbar Панель редагування Search toolbar Панель пошуку New Новий Open Відкрити Save Зберегти Save as Зберегти як Print Друкувати Print preview Попередній перегляд перед друком View HTML code Переглянути код HTML Find text Знайти текст Preview Перегляд Live preview Одночасний перегляд Fullscreen mode На весь екран Quit Вийти Undo Відмінити дію Redo Повторити дію Copy Скопіювати Cut Вирізати Paste Вставити Enable Увімкнути Set locale Вибрати мову Use WebKit renderer Використовувати WebKit Next Наступне Previous Попереднє Get help online Отримати довідку в мережі About ReText Про ReText About Qt Про Qt Bold Потовщення Italic Нахил Underline Підкреслення Tags Теги Symbols Символи File Файл Edit Редагування Help Довідка Open recent Відкрити останній Export Експорт Spell check Перевірка правопису Formatting Форматування Search Пошук Case sensitively Врахувати регістр New document Новий документ Please, save the file somewhere. Будь ласка, збережіть кудись файл. Show directory Переглянути теку Select one or several files to open Виберіть один або кілька файлів Supported files Файли що підтримуються All files (*) Всі файли (*) Plain text (*.txt) Простий текст (*.txt) %s files Example of final string: Markdown files Файли %s Save file Зберегти файл Cannot save to file because it is read-only! Неможливо зберегти, файл тільки для читання! Export document to ODT Експортувати як ODT OpenDocument text files (*.odt) Текстові файли OpenDocument (*.odt) HTML files (*.html *.htm) Файли HTML (*.html *.htm) Export document to PDF Експортувати як PDF PDF files (*.pdf) Файли PDF (*.pdf) Print document Друкувати документ Export document Експортувати документ Failed to execute the command: Помилка при виконанні команди: The document has been modified. Do you want to save your changes? Документ було змінено. Бажаєте зберегти ці зміни? HTML code Код HTML Simple but powerful editor for Markdown and reStructuredText Простий але потужний текстовий редактор для Markdown та reStructuredText Author: Dmitry Shachnev, 2011 Автор: Dmitry Shachnev, 2011 Website Веб-сайт Markdown syntax Синтаксис Markdown reStructuredText syntax Синтаксис reStructuredText Default markup Preferences Set encoding Select file encoding from the list: Reload Next tab Previous tab Table mode FakeVim mode This file has been deleted by other application. Please make sure you save the file before exit. This document has been modified by other application. Do you want to reload the file (this will discard all your changes)? If you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. Change editor font Change preview font ReText %s (using PyMarkups %s) ReText-5.3.1/locale/retext_de.ts0000644000175000017500000004723212701277257017411 0ustar dmitrydmitry00000000000000 ConfigDialog Behavior Verhalten Automatically save documents Dokumente automatisch speichern Restore window geometry Fenster-Zustand merken Open external links in ReText window Externe Verweise im ReText-Fenster öffnen Markdown syntax extensions (comma-separated) Erweiterungen für Markdown-Syntax (durch Kommata getrennt) Editor Editor Highlight current line Aktuelle Zeile hervorheben Show line numbers Zeilennummern anzeigen Tab key inserts spaces Tabulator fügt Leerzeichen ein Tabulation width Tabulator-Breite Display right margin at column Rechten Rand anzeigen bei Spalte Interface Oberfläche Icon theme name Symbolschema-Name Stylesheet file Stilvorlage-Datei Help Hilfe Use live preview by default FileSelectButton (none) (keine) Select file to open Zu öffnende Datei auswählen LocaleDialog Enter locale name (example: en_US) Eingabe der Lokalisierung (z.B.: de_DE) Set as default Als Standard setzen Proxy No write since last change (add ! to override) Nichts geschrieben seit der letzten Änderung (! zum Überschreiben) Information Information ReTextTab New document Neues Dokument Could not parse file contents, check if you have the <a href="%s">necessary module</a> installed! Dateiinhalte konnten nicht ausgewertet werden. Überprüfen Sie, ob die <a href="%s">notwendigen Module</a> installiert sind! ReTextWindow File toolbar Datei-Werkzeugleiste Edit toolbar Bearbeiten-Werkzeugleiste Search toolbar Such-Werkzeugleiste New Neu Open Öffnen Set encoding Zeichenkodierung festlegen Reload Neu laden Save Speichern Save as Speichern unter Next tab Nächster Reiter Previous tab Voriger Reiter Print Drucken Print preview Druckvorschau View HTML code HTML-Code anzeigen Change editor font Schrift des Editors ändern Change preview font Schrift der Vorschau ändern Find text Suche Preview Vorschau Live preview Live-Vorschau Table mode Tabellenmodus FakeVim mode Pseudo-Vim-Modus Fullscreen mode Vollbildmodus Preferences Einstellungen Quit Beenden Undo Rückgängig Redo Wiederholen Copy Kopieren Cut Ausschneiden Paste Einfügen Enable Aktivieren Set locale Spracheinstellung Use WebKit renderer WebKit-Renderer benutzen Show directory Verzeichnis anzeigen Next Weiter Previous Zurück Get help online Online Hilfe bekommen About ReText Über ReText About Qt Über Qt Bold Fett Italic Kursiv Underline Unterstrichen Tags Stichworte Symbols Symbole File Datei Edit Bearbeiten Help Hilfe Open recent Zuletzt geöffnet Export Exportieren Spell check Rechtschreibprüfung Default markup Standard-Markup Formatting Formatieren Search Suchen Case sensitively Groß-/Kleinschreibung New document Neues Dokument Please, save the file somewhere. Bitte die Datei irgendwo speichern. Select one or several files to open Eine oder mehrere Dateien zum Öffnen auswählen Supported files Unterstützte Dateien All files (*) Alle Dateien (*) Select file encoding from the list: Zeichenkodierung aus Liste auswählen: Plain text (*.txt) Klartext (*.txt) %s files Example of final string: Markdown files %s-Dateien Save file Datei speichern Cannot save to file because it is read-only! Speichern ist nicht möglich, Datei ist schreibgeschützt. Export document to ODT Dokument in ODT exportieren OpenDocument text files (*.odt) OpenDocument-Dateien (*.odt) HTML files (*.html *.htm) HTML-Dateien (*.html, *.htm) Export document to PDF Dokument in PDF exportieren PDF files (*.pdf) PDF-Dateien (*.pdf) Print document Dokument drucken Export document Dokument exportieren Failed to execute the command: Ausführung des Befehls fehlgeschlagen: This file has been deleted by other application. Please make sure you save the file before exit. Diese Datei wurde durch eine andere Anwendung gelöscht. Bitte sichern Sie die Datei vor dem Beenden. This document has been modified by other application. Do you want to reload the file (this will discard all your changes)? Dieses Dokument wurde durch eine andere Anwendung geändert. Wollen Sie die Datei neu laden (wobei alle Ihre Änderungen verworfen werden)? If you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. Wenn Sie die Datei nicht neu laden, wird das automatische Speichern für diese Sitzung deaktiviert, um Datenverlust zu vermeiden. The document has been modified. Do you want to save your changes? Das Dokument wurde verändert. Sollen die Änderungen gespeichert werden? HTML code HTML-Code ReText %s (using PyMarkups %s) ReText %s (mit PyMarkups %s) Simple but powerful editor for Markdown and reStructuredText Einfacher aber mächtiger Editor für Markdown and reStructuredText Author: Dmitry Shachnev, 2011 Autor: Dmitry Shachnev, 2011 Website Webseite Markdown syntax Markdown-Syntax reStructuredText syntax reStructuredText-Syntax ReText-5.3.1/locale/retext_uk.qm0000644000175000017500000001431612701277414017417 0ustar dmitrydmitry0000000000000000 L f >Nį7V WT&d BL"nun .5F)  4buzgy%Avz mD' G0 E@ϗ  T s)+I 9 3 @5 la v k O.ir>2V4:0Help ConfigDialog5<>6;82> @>7?V7=0B8 2<VAB D0;C, ?5@52V@B5 =0O2=VABL <a href="%s">=5>1EV4=8E <>4C;V2</a>!aCould not parse file contents, check if you have the necessary module installed! ReTextTab>289 4>:C<5=B New document ReTextTab$09;8 %s%s files ReTextWindow @> QtAbout Qt ReTextWindow@> ReText About ReText ReTextWindowAV D09;8 (*) All files (*) ReTextWindow82B>@: Dmitry Shachnev, 2011Author: Dmitry Shachnev, 2011 ReTextWindow>B>2I5==OBold ReTextWindowX5<>6;82> 715@53B8, D09; BV;L:8 4;O G8B0==O!,Cannot save to file because it is read-only! ReTextWindow"@0EC20B8 @53VAB@Case sensitively ReTextWindow!:>?VN20B8Copy ReTextWindow8@V70B8Cut ReTextWindow 5403C20==OEdit ReTextWindow$0=5;L @5403C20==O Edit toolbar ReTextWindow#2V<:=CB8Enable ReTextWindow:A?>@BExport ReTextWindow*:A?>@BC20B8 4>:C<5=BExport document ReTextWindow&:A?>@BC20B8 O: ODTExport document to ODT ReTextWindow&:A?>@BC20B8 O: PDFExport document to PDF ReTextWindow<><8;:0 ?@8 28:>=0==V :><0=48:Failed to execute the command: ReTextWindow$09;File ReTextWindow0=5;L D09;C File toolbar ReTextWindow=09B8 B5:AB Find text ReTextWindow$>@<0BC20==O Formatting ReTextWindow0 25AL 5:@0=Fullscreen mode ReTextWindow2B@8<0B8 4>2V4:C 2 <5@56VGet help online ReTextWindow>4 HTML HTML code ReTextWindow2$09;8 HTML (*.html *.htm)HTML files (*.html *.htm) ReTextWindow>2V4:0Help ReTextWindow 0E8;Italic ReTextWindow&4=>G0A=89 ?5@53;O4 Live preview ReTextWindow$!8=B0:A8A MarkdownMarkdown syntax ReTextWindow >289New ReTextWindow>289 4>:C<5=B New document ReTextWindow0ABC?=5Next ReTextWindowV4:@8B8Open ReTextWindow"V4:@8B8 >AB0==V9 Open recent ReTextWindowF"5:AB>2V D09;8 OpenDocument (*.odt)OpenDocument text files (*.odt) ReTextWindow"$09;8 PDF (*.pdf)PDF files (*.pdf) ReTextWindowAB028B8Paste ReTextWindow*@>AB89 B5:AB (*.txt)Plain text (*.txt) ReTextWindowDC4L ;0A:0, 715@56VBL :C48AL D09;. Please, save the file somewhere. ReTextWindow5@53;O4Preview ReTextWindow>?5@54=TPrevious ReTextWindow@C:C20B8Print ReTextWindow$@C:C20B8 4>:C<5=BPrint document ReTextWindow@>?5@54=V9 ?5@53;O4 ?5@54 4@C:>< Print preview ReTextWindow 89B8Quit ReTextWindow>2B>@8B8 4VNRedo ReTextWindow15@53B8Save ReTextWindow15@53B8 O:Save as ReTextWindow15@53B8 D09; Save file ReTextWindow >HC:Search ReTextWindow0=5;L ?>HC:CSearch toolbar ReTextWindow>815@VBL >48= 01> :V;L:0 D09;V2#Select one or several files to open ReTextWindow81@0B8 <>2C Set locale ReTextWindow 5@53;O=CB8 B5:CShow directory ReTextWindow@>AB89 0;5 ?>BC6=89 B5:AB>289 @540:B>@ 4;O Markdown B0 reStructuredText ?8AC Spell check ReTextWindow,$09;8 I> ?V4B@8<CNBLAOSupported files ReTextWindow!8<2>;8Symbols ReTextWindow"538Tags ReTextWindowb>:C<5=B 1C;> 7<V=5=>. 060TB5 715@53B8 FV 7<V=8?AThe document has been modified. Do you want to save your changes? ReTextWindowV4:@5A;5==O Underline ReTextWindowV4<V=8B8 4VNUndo ReTextWindow,8:>@8AB>2C20B8 WebKitUse WebKit renderer ReTextWindow(5@53;O=CB8 :>4 HTMLView HTML code ReTextWindow51-A09BWebsite ReTextWindow4!8=B0:A8A reStructuredTextreStructuredText syntax ReTextWindow ) , ReText-5.3.1/locale/retext_da.qm0000644000175000017500000001543612701277414017370 0ustar dmitrydmitry00000000000000ndvendige modul</a> installeret.aCould not parse file contents, check if you have the necessary module installed! ReTextTabNyt dokument New document ReTextTab%s-filer%s files ReTextWindow Om QtAbout Qt ReTextWindowOm ReText About ReText ReTextWindowAlle filer (*) All files (*) ReTextWindow@Forfatter: Dmitry Shachnev, 2011Author: Dmitry Shachnev, 2011 ReTextWindowFedBold ReTextWindowfKan ikke gemme filen, fordi den er skrivebeskyttet!,Cannot save to file because it is read-only! ReTextWindowJSkelnen mellem store og sm bogstaverCase sensitively ReTextWindow KopierCopy ReTextWindowKlipCut ReTextWindowRedigerEdit ReTextWindow0Redigering-vrktjslinie Edit toolbar ReTextWindowAktiverEnable ReTextWindowEksportExport ReTextWindow$Eksporter dokumentExport document ReTextWindow4Eksporter dokument til ODTExport document to ODT ReTextWindow4Eksporter dokument til PDFExport document to PDF ReTextWindow:Kunne ikke udfre kommandoen:Failed to execute the command: ReTextWindowFilFile ReTextWindow"Fil-vrktjslinie File toolbar ReTextWindowFind tekst Find text ReTextWindowFormattering Formatting ReTextWindow"FuldskrmsvisningFullscreen mode ReTextWindow"Find hjlp onlineGet help online ReTextWindowHTML-kode HTML code ReTextWindow2HTML-filer (*.html *.htm)HTML files (*.html *.htm) ReTextWindow HjlpHelp ReTextWindow KursivItalic ReTextWindow(Live-forhndsvisning Live preview ReTextWindow Markdown-syntaksMarkdown syntax ReTextWindowNyNew ReTextWindowNyt dokument New document ReTextWindow NsteNext ReTextWindowbenOpen ReTextWindowben seneste Open recent ReTextWindow>OpenDocument-tekstfiler (*.odt)OpenDocument text files (*.odt) ReTextWindow"PDF-filer (*.pdf)PDF files (*.pdf) ReTextWindow IndstPaste ReTextWindow"Ren tekst (*.txt)Plain text (*.txt) ReTextWindow6Gem venligst filen et sted. Please, save the file somewhere. ReTextWindowForhndsvisningPreview ReTextWindowForegendePrevious ReTextWindowUdskriftPrint ReTextWindow Udskriv dokumentPrint document ReTextWindow Udskriftsvisning Print preview ReTextWindow AfslutQuit ReTextWindow GendanRedo ReTextWindowGemSave ReTextWindowGem somSave as ReTextWindowGem fil Save file ReTextWindowSgSearch ReTextWindow$Sge-vrktjslinieSearch toolbar ReTextWindowRVlg en eller flere filer, der skal bnes#Select one or several files to open ReTextWindow,St sprogindstillinger Set locale ReTextWindowVis mappeShow directory ReTextWindownEnkel men strk editor til Markdown og reStructuredText ConfigDialog Behavior Automatically save documents Restore window geometry Open external links in ReText window Editor Highlight current line Show line numbers Tab key inserts spaces Tabulation width Display right margin at column Interface Icon theme name Stylesheet file Markdown syntax extensions (comma-separated) Help Ajuda Use live preview by default FileSelectButton (none) Select file to open LocaleDialog Enter locale name (example: en_US) Set as default Proxy No write since last change (add ! to override) Information ReTextTab New document Document nou Could not parse file contents, check if you have the <a href="%s">necessary module</a> installed! No s'ha pogut analitzar el contingut del fitxer. Comproveu que teniu instal·lat el <a href="%s">mòdul necessari</a>. ReTextWindow File toolbar Barra d'eines Fitxer Edit toolbar Barra d'eines Edita Search toolbar Barra d'eines de Cerca New Nou Open Obre Save Desa Save as Anomena i desa Print Imprimeix Print preview Imprimeix la vista prèvia View HTML code Veure el codi HTML Find text Cerca el text Preview Vista prèvia Live preview Vista prèvia en directe Fullscreen mode Mode de pantalla completa Quit Surt Undo Desfés Redo Refés Copy Copia Cut Retalla Paste Enganxa Enable Activa Set locale Estableix l'idioma Use WebKit renderer Utilitza el renderitzador WebKit Next Següent Previous Previ Get help online Obtingueu ajuda en línia About ReText Sobre ReText About Qt Sobre Qt Bold Negreta Italic Cursiva Underline Subratllat Tags Etiquetes Symbols Símbols File Fitxer Edit Edita Help Ajuda Open recent Obre recents Export Exporta Spell check Comprova l'ortografia Formatting Formata Search Cerca Case sensitively Majúscules i minúscules New document Document nou Please, save the file somewhere. deseu el fitxer en algun directori Show directory Mostra el directori Select one or several files to open Seleccioneu un o més fitxers per obrir Supported files Fitxers suportats All files (*) Tots els fitxers (*) Plain text (*.txt) Text pla (*.txt) %s files Example of final string: Markdown files %s fitxers Save file Desa el fitxer Cannot save to file because it is read-only! No s'ha pogut desar el fitxer perquè només és de lectura Export document to ODT Exporta el document a ODT OpenDocument text files (*.odt) Fitxers de text OpenDocument (*.odt) HTML files (*.html *.htm) Fitxers HTML (*.html *htm) Export document to PDF Exporta document com a PDF PDF files (*.pdf) Fitxers PDF (*.pdf) Print document Imprimeix document Export document Exporta document Failed to execute the command: S'ha produït un error a l'executar el comandament: The document has been modified. Do you want to save your changes? S'ha modificat el document. Voleu desar els canvis? HTML code Codi HTML Simple but powerful editor for Markdown and reStructuredText Editor de Markdown i reStructuredText senzill alhora que potent Author: Dmitry Shachnev, 2011 Autor: Dmitry Shachnev, 2011 Website Lloc web Markdown syntax Sintaxi markdown reStructuredText syntax Sintaxi reStructuredText Default markup Preferences Set encoding Select file encoding from the list: Reload Next tab Previous tab Table mode FakeVim mode This file has been deleted by other application. Please make sure you save the file before exit. This document has been modified by other application. Do you want to reload the file (this will discard all your changes)? If you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. Change editor font Change preview font ReText %s (using PyMarkups %s) ReText-5.3.1/locale/retext_sk.ts0000644000175000017500000004622512701277260017431 0ustar dmitrydmitry00000000000000 ConfigDialog Behavior Automatically save documents Restore window geometry Open external links in ReText window Editor Highlight current line Show line numbers Tab key inserts spaces Tabulation width Display right margin at column Interface Icon theme name Stylesheet file Markdown syntax extensions (comma-separated) Help Pomocník Use live preview by default FileSelectButton (none) Select file to open LocaleDialog Enter locale name (example: en_US) Set as default Proxy No write since last change (add ! to override) Information ReTextTab New document Nový dokument Could not parse file contents, check if you have the <a href="%s">necessary module</a> installed! ReTextWindow File toolbar Panel nástrojov pre súbor Edit toolbar Panel nástrojov pre úpravy Search toolbar Panel nástrojov pre vyhľadávanie New Nový Open Otvoriť Save Uložiť Save as Uložiť ako Print Tlačiť Print preview Ukážka pred tlačou View HTML code Zobraziť HTML kód Find text Nájsť text Preview Náhľad Live preview Priebežný náhľad Fullscreen mode Celoobrazovkový režim Quit Quit Undo Späť Redo Znova Copy Kopírovať Cut Vystrihnúť Paste Vložiť Enable Povoliť Set locale Nastaviť lokalizáciu Use WebKit renderer Použiť k vykresľovaniu WebKit Next Nasledujúci Previous Predchádzajúci Get help online Získať online pomoc About Qt O Qt Bold Tučné Italic Kurzíva Underline Podčiarknuté Tags Značky Symbols Symboly File Súbor Edit Upraviť Help Pomocník Open recent Otvoriť nedávne Export Export Spell check Kontrola pravopisu Formatting Formátovanie Search Vyhľadávanie Case sensitively Rozlišovanie veľkosti písmen New document Nový dokument Please, save the file somewhere. Uložte prosím niekam súbor. Show directory Zobraziť priečinok Select one or several files to open Vyberte jeden alebo viac súborov k otvoreniu Supported files Podporované súbory All files (*) Všetky súbory (*.*) Plain text (*.txt) Jednoduchý text (*.txt) Save file Uložiť súbor Cannot save to file because it is read-only! Nie je možné uložiť, pretože súbor je len nna čítanie! Export document to ODT Exportovať dokument do ODT OpenDocument text files (*.odt) OpenDocument textové súbory (*.odt) HTML files (*.html *.htm) HTML súbory (*.html *.htm) Export document to PDF Exportovať dokument do PDF PDF files (*.pdf) PDF súbory (*.pdf) Print document Tlačiť dokument Export document Exportovať dokument Failed to execute the command: Nepodarilo sa spustiť príkaz: The document has been modified. Do you want to save your changes? Dokument bol zmenený. Chcete uložiť vaše zmeny? HTML code HTML kód Author: Dmitry Shachnev, 2011 Autor: Dmitry Shachnev, 2011 Website Webová stránka Markdown syntax Markdown syntax About ReText O ReText %s files Example of final string: Markdown files Súbory %s Simple but powerful editor for Markdown and reStructuredText Jednoduchý a pritom efektívny editor pre Markdown a reStructuredText reStructuredText syntax reStructuredText syntax Default markup Preferences Set encoding Select file encoding from the list: Reload Next tab Previous tab Table mode FakeVim mode This file has been deleted by other application. Please make sure you save the file before exit. This document has been modified by other application. Do you want to reload the file (this will discard all your changes)? If you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. Change editor font Change preview font ReText %s (using PyMarkups %s) ReText-5.3.1/locale/retext_ru.qm0000644000175000017500000002563212701277414017431 0ustar dmitrydmitry00000000000000Hbdy(Yc'OzPrgl)  b9y%(v_ #S4J#im Er5t 'i!D' `0 Eϗ1[ )T) +I'9HD.~,i7$  @ h> la ~ vY <0B8G5A:8 A>E@0=OBL 4>:C<5=BKAutomatically save documents ConfigDialog>2545=85Behavior ConfigDialog@>:07K20BL @0745;8B5;L 2 AB>;1F5Display right margin at column ConfigDialog 540:B>@Editor ConfigDialog!?@02:0Help ConfigDialog6>4A25G820BL B5:CICN AB@>:CHighlight current line ConfigDialog"5<0 7=0G:>2Icon theme name ConfigDialog=5H=89 284 Interface ConfigDialogj 0AH8@5=8O A8=B0:A8A0 Markdown (@0745;Q==K5 70?OBK<8),Markdown syntax extensions (comma-separated) ConfigDialogLB:@K20BL 2=5H=85 AAK;:8 2 >:=5 ReText$Open external links in ReText window ConfigDialog0!>E@0=OBL 35><5B@8N >:=0Restore window geometry ConfigDialog.>:07K20BL =><5@0 AB@>:Show line numbers ConfigDialog$09; AB8;O QtStylesheet file ConfigDialog*Tab 2AB02;O5B ?@>15;KTab key inserts spaces ConfigDialog (8@8=0 B01C;OF88Tabulation width ConfigDialogH:;NG8BL 682>9 ?@>A<>B@ ?> C<>;G0=8NUse live preview by default ConfigDialog(=5 2K1@0=)(none)FileSelectButton4K15@8B5 D09; 4;O >B:@KB8OSelect file to openFileSelectButtonH2548B5 :>4 ;>:0;8 (=0?@8<5@: en_US)"Enter locale name (example: en_US) LocaleDialog.#AB0=>28BL ?> C<>;G0=8NSet as default LocaleDialog=D>@<0F8O InformationProxyvABL =5A>E@0=Q==K5 87<5=5=8O (4>102LB5 ! 4;O 83=>@8@>20=8O).No write since last change (add ! to override)Proxy5 C40;>AL >1@01>B0BL A>45@68<>5 D09;0, C1548B5AL, GB> CAB0=>2;5= <a href="%s">=5>1E>48<K9 <>4C;L</a>!aCould not parse file contents, check if you have the necessary module installed! ReTextTab>2K9 4>:C<5=B New document ReTextTab$09;K %s%s files ReTextWindow QtAbout Qt ReTextWindow ReText About ReText ReTextWindowA5 D09;K (*) All files (*) ReTextWindow82B>@: Dmitry Shachnev, 2011Author: Dmitry Shachnev, 2011 ReTextWindow>;C68@=K9Bold ReTextWindow52>7<>6=> A>E@0=8BL 2 D09;, B0: :0: >= 4>ABC?5= B>;L:> 4;O GB5=8O!,Cannot save to file because it is read-only! ReTextWindow"#G8BK20BL @538AB@Case sensitively ReTextWindow07<5=8BL H@8DB @540:B>@0Change editor font ReTextWindow07<5=8BL H@8DB ?@>A<>B@0Change preview font ReTextWindow>?8@>20BLCopy ReTextWindowK@570BLCut ReTextWindow4/7K: @07<5B:8 ?> C<>;G0=8NDefault markup ReTextWindow @02:0Edit ReTextWindow*0=5;L @540:B8@>20=8O Edit toolbar ReTextWindow:;NG8BLEnable ReTextWindow-:A?>@BExport ReTextWindow.-:A?>@B8@>20BL 4>:C<5=BExport document ReTextWindow>-:A?>@B8@>20BL 4>:C<5=B :0: ODTExport document to ODT ReTextWindow>-:A?>@B8@>20BL 4>:C<5=B :0: PDFExport document to PDF ReTextWindow:52>7<>6=> 70?CAB8BL :><0=4C:Failed to execute the command: ReTextWindow 568< FakeVim FakeVim mode ReTextWindow$09;File ReTextWindow0=5;L D09;0 File toolbar ReTextWindow>8A: B5:AB0 Find text ReTextWindow$>@<0B8@>20=85 Formatting ReTextWindow&>;=>M:@0==K9 @568<Fullscreen mode ReTextWindow6>;CG8BL ?><>IL 2 8=B5@=5B5Get help online ReTextWindow:>4 HTML HTML code ReTextWindow2$09;K HTML (*.html *.htm)HTML files (*.html *.htm) ReTextWindow!?@02:0Help ReTextWindowA;8 2K @5H8B5 =5 ?5@5703@C60BL D09;, @568< 02B><0B8G5A:>3> A>E@0=5=8O 1C45B >B:;NGQ= 4;O MB>3> A50=A0 2 F5;OE ?@54>B2@0I5=8O ?>B5@8 40==KE.lIf you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. ReTextWindow C@A82Italic ReTextWindow82>9 ?@>A<>B@ Live preview ReTextWindow$!8=B0:A8A MarkdownMarkdown syntax ReTextWindow >2K9New ReTextWindow>2K9 4>:C<5=B New document ReTextWindow!;54CNI55Next ReTextWindow"!;54CNI0O 2:;04:0Next tab ReTextWindowB:@KBLOpen ReTextWindow"B:@KBL ?>A;54=85 Open recent ReTextWindowB$09;K B5:AB0 OpenDocument (*.odt)OpenDocument text files (*.odt) ReTextWindow"$09;K PDF (*.pdf)PDF files (*.pdf) ReTextWindowAB028BLPaste ReTextWindow*@>AB>9 B5:AB (*.txt)Plain text (*.txt) ReTextWindow.!=0G0;0 A>E@0=8B5 D09;. Please, save the file somewhere. ReTextWindow0AB@>9:8 Preferences ReTextWindow@>A<>B@Preview ReTextWindow@54K4CI55Previous ReTextWindow$@54K4CI0O 2:;04:0 Previous tab ReTextWindow 0A?5G0B0BLPrint ReTextWindow( 0A?5G0B0BL 4>:C<5=BPrint document ReTextWindow&@54?@>A<>B@ ?5G0B8 Print preview ReTextWindow KE>4Quit ReTextWindowFReText %s (8A?>;L7C5B PyMarkups %s)ReText %s (using PyMarkups %s) ReTextWindow$>2B>@8BL 459AB285Redo ReTextWindow 03@C78BL 70=>2>Reload ReTextWindow!>E@0=8BLSave ReTextWindow!>E@0=8BL :0:Save as ReTextWindow!>E@0=8BL D09; Save file ReTextWindow >8A:Search ReTextWindow0=5;L ?>8A:0Search toolbar ReTextWindowFK15@8B5 :>48@>2:C D09;0 87 A?8A:0:#Select file encoding from the list: ReTextWindow^K15@8B5 >48= 8;8 =5A:>;L:> D09;>2 4;O >B:@KB8O#Select one or several files to open ReTextWindow(#AB0=>28BL :>48@>2:C Set encoding ReTextWindow"#AB0=>28BL ;>:0;L Set locale ReTextWindowB:@KBL ?0?:CShow directory ReTextWindowv@>AB>9, => <>I=K9 @540:B>@ 4;O Markdown 8 reStructuredText25@:0 >@D>3@0D88 Spell check ReTextWindow(>445@68205<K5 D09;KSupported files ReTextWindow!8<2>;KSymbols ReTextWindow6 568< @540:B8@>20=8O B01;8F Table mode ReTextWindow"538Tags ReTextWindowT>:C<5=B 1K; 87<5=Q=. !>E@0=8BL 87<5=5=8O?AThe document has been modified. Do you want to save your changes? ReTextWindow-B>B 4>:C<5=B 1K; 87<5=Q= 4@C38< ?@8;>65=85<. %>B8B5 ;8 2K 703@C78BL D09; 70=>2> (MB> >B<5=8B 2A5 20H8 87<5=5=8O)? {This document has been modified by other application. Do you want to reload the file (this will discard all your changes)?  ReTextWindow-B>B D09; 1K; C40;Q= 4@C38< ?@8;>65=85<. >60;C9AB0, C1548B5AL ?5@54 2KE>4><, GB> 2K A>E@0=8;8 D09;.`This file has been deleted by other application. Please make sure you save the file before exit. ReTextWindow>4GQ@:820=85 Underline ReTextWindow"B<5=8BL 459AB285Undo ReTextWindow4A?>;L7>20BL 4286>: WebKitUse WebKit renderer ReTextWindow$@>A<>B@ :>40 HTMLView HTML code ReTextWindow51-A09BWebsite ReTextWindow4!8=B0:A8A reStructuredTextreStructuredText syntax ReTextWindow ) , ReText-5.3.1/locale/retext_sr@latin.qm0000644000175000017500000002414012701277414020550 0ustar dmitrydmitry00000000000000"bLdy|Yc')zrgQ b+y% v  #S4J m or5t'$' 0 Eϗ8 iT) +I09/HD.~gn7")  @ h> la v  F 0 c5 ??e \ pS w u J U Px) v Y,  U 2^ I $b/$3efI*U *)  O. Li%8Automatski sa uvaj dokumenteAutomatically save documents ConfigDialogPonaaanjeBehavior ConfigDialog<Prika~i desnu marginu u koloniDisplay right margin at column ConfigDialogUreiva Editor ConfigDialog PomoHelp ConfigDialog.Istakni trenutnu linijuHighlight current line ConfigDialog Naziv teme ikonaIcon theme name ConfigDialogSu elje Interface ConfigDialog^Proairenja sintakse Markdown (odvojeno zapetom),Markdown syntax extensions (comma-separated) ConfigDialogJOtvaraj spoljne veze u ReText prozoru$Open external links in ReText window ConfigDialog2Upamti geometriju prozoraRestore window geometry ConfigDialog,Prika~i brojeve linijaShow line numbers ConfigDialogFajl rasporedaStylesheet file ConfigDialog&Tab ubacuje razmakeTab key inserts spaces ConfigDialog"`irina tabulacijeTabulation width ConfigDialog(niata)(none)FileSelectButtonIzaberite fajlSelect file to openFileSelectButtonLUnesite oznaku lokaliteta (npr. sr_RS)"Enter locale name (example: en_US) LocaleDialog2Postavi kao podrazumevanoSet as default LocaleDialog Podaci InformationProxynNema upisa od poslednje izmene (dodajte ! da pregazite).No write since last change (add ! to override)ProxyNe mogu da raa lanim sadr~aj fajla, Proverite da li imate instaliran <a href="%s">neophodan modul</a>!aCould not parse file contents, check if you have the necessary module installed! ReTextTabNovi dokument New document ReTextTab%s fajlovi%s files ReTextWindow O QT-uAbout Qt ReTextWindow"O programu ReText About ReText ReTextWindowSvi fajlovi (*) All files (*) ReTextWindowZAutor: Dmitrij `a nev (Dmitry Shachnev), 2011Author: Dmitry Shachnev, 2011 ReTextWindowPodebljanoBold ReTextWindow^Ne mogu da sa uvam jer je fajl samo za  itanje!,Cannot save to file because it is read-only! ReTextWindow,Osetljiv na vel. slovaCase sensitively ReTextWindowKopirajCopy ReTextWindow IseciCut ReTextWindow.Podrazumevana markacijaDefault markup ReTextWindowUreivanjeEdit ReTextWindow$Uredi alatna traka Edit toolbar ReTextWindowUklju iEnable ReTextWindow IzveziExport ReTextWindowIzvezi dokumentExport document ReTextWindow*Izvezi dokument u ODTExport document to ODT ReTextWindow*Izvezi dokument u PDFExport document to PDF ReTextWindow6Neuspelo izvraenje komande:Failed to execute the command: ReTextWindowLa~ni Vim re~im FakeVim mode ReTextWindowFajlFile ReTextWindow"Fajl alatna traka File toolbar ReTextWindowNai tekst Find text ReTextWindowFormatiranje Formatting ReTextWindow$Re~im punog ekranaFullscreen mode ReTextWindow8Potra~ite pomo na internetuGet help online ReTextWindowHTML kod HTML code ReTextWindow6HTML fajlovi (*.html *.htm)HTML files (*.html *.htm) ReTextWindow PomoHelp ReTextWindowAko izaberete da ne u itate ponovo, automatsko  uvanje bie isklju eno za ovu sesiju da bi se spre io gubitak podataka.lIf you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. ReTextWindowKurzivnoItalic ReTextWindow Trenutni pregled Live preview ReTextWindow"Sintaksa MarkdownMarkdown syntax ReTextWindowNovoNew ReTextWindowNovi dokument New document ReTextWindowSledeeNext ReTextWindowSledei jezi akNext tab ReTextWindow OtvoriOpen ReTextWindowOtvori nedavne Open recent ReTextWindowHOpenDocument tekstualni fajl (*.odt)OpenDocument text files (*.odt) ReTextWindow&PDF fajlovi (*.pdf)PDF files (*.pdf) ReTextWindow NalepiPaste ReTextWindow(Obi an tekst (*.txt)Plain text (*.txt) ReTextWindow*Sa uvajte fajl negde. Please, save the file somewhere. ReTextWindowPodeaavanja Preferences ReTextWindowPregledPreview ReTextWindowPrethodnoPrevious ReTextWindow"Prethodni jezi ak Previous tab ReTextWindow`tampajPrint ReTextWindow `tampaj dokumentPrint document ReTextWindowPrikaz atampe Print preview ReTextWindowNapustiQuit ReTextWindow PonoviRedo ReTextWindowU itaj ponovoReload ReTextWindowSa uvajSave ReTextWindowSa uvaj kaoSave as ReTextWindowSa uvaj fajl Save file ReTextWindow Tra~iSearch ReTextWindow*Alatna traka tra~enjaSearch toolbar ReTextWindowFSa liste izaberite kodiranje fajla:#Select file encoding from the list: ReTextWindowZIzaberite jedan ili viae fajlova za otvaranje#Select one or several files to open ReTextWindow"Postavi kodiranje Set encoding ReTextWindow"Postavi lokalitet Set locale ReTextWindow(Prika~i direktorijumShow directory ReTextWindowzJednostavan ali moan ureiva za Markdown i reStructuredTextbdyYc'?z rrg @l) by% 2v ] #Sd4Jmr\5t'b#' 0 E.ϗ9? eT=)+I_9HD.v~ e7  @ h> la v{ c ??e \ p w I J U* Px v Y  U 2 Iu 6/3EeI*U   R*)c O?. i RO[XeNAutomatically save documents ConfigDialogLN:Behavior ConfigDialogf>y:SRuDisplay right margin at column ConfigDialogEditor ConfigDialog^.RHelp ConfigDialogNf>y:_SRMLHighlight current line ConfigDialog VhN;T yIcon theme name ConfigDialogNNuLb Interface ConfigDialog(Markdown lbi\U (SR),Markdown syntax extensions (comma-separated) ConfigDialog$W( ReText zSN-bS_Yc$Open external links in ReText window ConfigDialog`bY zSOMnY'\Restore window geometry ConfigDialogf>y:LSShow line numbers ConfigDialog h7_heNStylesheet file ConfigDialogOu( zzh< fcb TabTab key inserts spaces ConfigDialogTab .[^Tabulation width ConfigDialoge (none)FileSelectButtonbS_eNSelect file to openFileSelectButton$QeT y (OY: zh_CN)"Enter locale name (example: en_US) LocaleDialogN:؋Set as default LocaleDialogO`o InformationProxy&]Oe9OF\g*O[XSu( ! _:R6bgL .No write since last change (add ! to override)ProxyRN YteNQ[ hgO`f/T&[N <a href="%s">_ŗvj!WW</a>aCould not parse file contents, check if you have the necessary module installed! ReTextTabeeN New document ReTextTab %s eN%s files ReTextWindow QsN QtAbout Qt ReTextWindowQsN ReText About ReText ReTextWindowQheN (*) All files (*) ReTextWindow2O\: Dmitry Shachnev, 2011Author: Dmitry Shachnev, 2011 ReTextWindowR|Bold ReTextWindow&N O[XeNVN:_SRMeNbeNY9S,Cannot save to file because it is read-only! ReTextWindow [Y'\QeOaCase sensitively ReTextWindowOe9Vh[WOSChange editor font ReTextWindow Oe9[WOSChange preview font ReTextWindowY R6Copy ReTextWindowRjRCut ReTextWindow ؋j!_Default markup ReTextWindowEdit ReTextWindow ]Qwh Edit toolbar ReTextWindowom;Enable ReTextWindow[QExport ReTextWindow[QeNExport document ReTextWindow[QeNR0 ODTExport document to ODT ReTextWindow[QeNR0 PDFExport document to PDF ReTextWindowN bgLT}N:Failed to execute the command: ReTextWindowFakeVim j!_ FakeVim mode ReTextWindoweNFile ReTextWindow eN]Qwh File toolbar ReTextWindowgb~eg, Find text ReTextWindow[W{&h7_ Formatting ReTextWindowQh\Oj!_Fullscreen mode ReTextWindowW(~S^.Re Get help online ReTextWindowHTML Nx HTML code ReTextWindow,HTML eN (*.html *.htm)HTML files (*.html *.htm) ReTextWindow^.RHelp ReTextWindow@YgN e}QeeN \yu(OvRO[Xj!_ N2kbepcnN"Y10lIf you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. ReTextWindowP>eItalic ReTextWindow[e Live preview ReTextWindowMarkdown lMarkdown syntax ReTextWindowe^New ReTextWindoweeN New document ReTextWindowN NyNext ReTextWindow N NN*h{~Next tab ReTextWindowbS_Open ReTextWindow bS_gOu( Open recent ReTextWindow2OpenDocument eg,eN (*.odt)OpenDocument text files (*.odt) ReTextWindowPDF eN (*.pdf)PDF files (*.pdf) ReTextWindow|4Paste ReTextWindowfneg,ehc (*.txt)Plain text (*.txt) ReTextWindow O[XR0R+vW0eTf Please, save the file somewhere. ReTextWindowN*NPOY} Preferences ReTextWindowPreview ReTextWindowN NyPrevious ReTextWindow N NN*h{~ Previous tab ReTextWindowbSSpPrint ReTextWindowbSSpeNPrint document ReTextWindowbSSp Print preview ReTextWindowQQuit ReTextWindow4ReText %sOu( PyMarkups %s ReText %s (using PyMarkups %s) ReTextWindowPZRedo ReTextWindow͏}Reload ReTextWindowO[XSave ReTextWindowS[XN:Save as ReTextWindowO[XeN Save file ReTextWindowd}"Search ReTextWindow d}"]QwhSearch toolbar ReTextWindowNRhN- beNxe_#Select file encoding from the list: ReTextWindow bNN*bYN*eNbS_#Select one or several files to open ReTextWindow nxe_ Set encoding ReTextWindow buLb Set locale ReTextWindow f>y:eNY9Show directory ReTextWindowJ{SUeHv Markdown N ReStructuredText VhScegli uno o pi file da aprire#Select one or several files to open ReTextWindow,Imposta localizzazione Set locale ReTextWindowMostra cartellaShow directory ReTextWindowjEditor Markdown e reStructuredText semplice e potente ConfigDialog Behavior Opførsel Automatically save documents Gem automatisk dokumenter Restore window geometry Gendan vinduesgeometri Open external links in ReText window Åbn eksterne links i ReText-vinduet Editor Highlight current line Show line numbers Tab key inserts spaces Tabulation width Display right margin at column Interface Icon theme name Stylesheet file Markdown syntax extensions (comma-separated) Help Hjælp Use live preview by default FileSelectButton (none) Select file to open LocaleDialog Enter locale name (example: en_US) Indtast lokalitetsnavn (f.eks. da_DK) Set as default Sæt som standard Proxy No write since last change (add ! to override) Information ReTextTab New document Nyt dokument Could not parse file contents, check if you have the <a href="%s">necessary module</a> installed! Kunne ikke indlæse filens indhold, dobbeltcheck at du har det <a href="%s">nødvendige modul</a> installeret. ReTextWindow File toolbar Fil-værktøjslinie Edit toolbar Redigering-værktøjslinie Search toolbar Søge-værktøjslinie New Ny Open Åben Save Gem Set encoding Save as Gem som Print Udskrift Print preview Udskriftsvisning View HTML code Vis HTML-kode Find text Find tekst Preview Forhåndsvisning Live preview Live-forhåndsvisning Fullscreen mode Fuldskærmsvisning Preferences Quit Afslut Undo Fortryd Redo Gendan Copy Kopier Cut Klip Paste Indsæt Enable Aktiver Set locale Sæt sprogindstillinger Use WebKit renderer Anvend WebKit-fremviser Next Næste Previous Foregående Get help online Find hjælp online About ReText Om ReText About Qt Om Qt Bold Fed Italic Kursiv Underline Understregning Tags Tags Symbols Symboler File Fil Edit Rediger Help Hjælp Open recent Åben seneste Export Eksport Spell check Stavekontrol Default markup Formatting Formattering Search Søg Case sensitively Skelnen mellem store og små bogstaver New document Nyt dokument Please, save the file somewhere. Gem venligst filen et sted. Show directory Vis mappe Select one or several files to open Vælg en eller flere filer, der skal åbnes Supported files Understøttede filer All files (*) Alle filer (*) Select file encoding from the list: Plain text (*.txt) Ren tekst (*.txt) %s files Example of final string: Markdown files %s-filer Save file Gem fil Cannot save to file because it is read-only! Kan ikke gemme filen, fordi den er skrivebeskyttet! Export document to ODT Eksporter dokument til ODT OpenDocument text files (*.odt) OpenDocument-tekstfiler (*.odt) HTML files (*.html *.htm) HTML-filer (*.html *.htm) Export document to PDF Eksporter dokument til PDF PDF files (*.pdf) PDF-filer (*.pdf) Print document Udskriv dokument Export document Eksporter dokument Failed to execute the command: Kunne ikke udføre kommandoen: The document has been modified. Do you want to save your changes? Dokumentet er blevet ændret. Ønsker du at gemme dine ændringer? HTML code HTML-kode Simple but powerful editor for Markdown and reStructuredText Enkel men stærk editor til Markdown og reStructuredText Author: Dmitry Shachnev, 2011 Forfatter: Dmitry Shachnev, 2011 Website Hjemmeside Markdown syntax Markdown-syntaks reStructuredText syntax reStructuredText-syntaks Reload Next tab Previous tab Table mode FakeVim mode This file has been deleted by other application. Please make sure you save the file before exit. This document has been modified by other application. Do you want to reload the file (this will discard all your changes)? If you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. Change editor font Change preview font ReText %s (using PyMarkups %s) ReText-5.3.1/locale/retext_cs.qm0000644000175000017500000002004312701277414017377 0ustar dmitrydmitry00000000000000ybdYc'z g  b)y% v ? #Smr3'F .0 E2ϗ Tt) c+I9KHD.  @* laO v :Automaticky ukldat dokumentyAutomatically save documents ConfigDialogChovnBehavior ConfigDialog<Zobrazovat prav okraj sloupceDisplay right margin at column ConfigDialog EditorEditor ConfigDialogNpovdaHelp ConfigDialog4ZvrazHovat aktuln YdekHighlight current line ConfigDialog"Nzev motivu ikonIcon theme name ConfigDialogRozhran Interface ConfigDialogLOtevrat extern odkazy v okn ReTextu$Open external links in ReText window ConfigDialog(Obnovit rozmry oknaRestore window geometry ConfigDialog,Zobrazovat  sla YdkoShow line numbers ConfigDialog>Klvesa Tabultor vkld mezeryTab key inserts spaces ConfigDialog `Yka tabultoruTabulation width ConfigDialogNZadejte nzev lokalizace (napY.: cs_CZ)"Enter locale name (example: en_US) LocaleDialog*Nastavit jako vchozSet as default LocaleDialogNelze analyzovat obsah souboru, zkontrolujte, zda mte nainstalovn <a href="%s">nezbytn modul</a>!aCould not parse file contents, check if you have the necessary module installed! ReTextTabNov dokument New document ReTextTab%s soubory%s files ReTextWindowO QtAbout Qt ReTextWindowO ReText About ReText ReTextWindow&Vaechny soubory (*) All files (*) ReTextWindow8Autor: Dmitry Shachnev, 2011Author: Dmitry Shachnev, 2011 ReTextWindow Tu nBold ReTextWindow`Nelze ulo~it, proto~e soubor je pouze pro  ten!,Cannot save to file because it is read-only! ReTextWindow4Rozliaovat velikost psmenCase sensitively ReTextWindowKoprovatCopy ReTextWindowVyjmoutCut ReTextWindowVchoz syntaxDefault markup ReTextWindowUpravitEdit ReTextWindow.Nstrojov liata pravy Edit toolbar ReTextWindowPovolitEnable ReTextWindowExportovatExport ReTextWindow&Exportovat dokumentExport document ReTextWindow4Exportovat dokument do ODTExport document to ODT ReTextWindow4Exportovat dokument do PDFExport document to PDF ReTextWindow:NepodaYilo se spustit pYkaz:Failed to execute the command: ReTextWindow SouborFile ReTextWindow.Nstrojov liata Soubor File toolbar ReTextWindowNajt text Find text ReTextWindowFormtovn Formatting ReTextWindow*Celoobrazovkov re~imFullscreen mode ReTextWindow0Zskejte npovdu onlineGet help online ReTextWindowHTML kd HTML code ReTextWindow6Soubory HTML (*.html *.htm)HTML files (*.html *.htm) ReTextWindowNpovdaHelp ReTextWindowKurzvaItalic ReTextWindowProb~n nhled Live preview ReTextWindow Syntax MarkdownuMarkdown syntax ReTextWindowNovNew ReTextWindowNov dokument New document ReTextWindowNsledujcNext ReTextWindowOtevYtOpen ReTextWindowOtevYt nedvn Open recent ReTextWindowHTextov soubory OpenDocument (*.odt)OpenDocument text files (*.odt) ReTextWindow&Soubory PDF (*.pdf)PDF files (*.pdf) ReTextWindow Vlo~itPaste ReTextWindow&Prost text (*.txt)Plain text (*.txt) ReTextWindow:Soubor, prosm, nkam ulo~te. Please, save the file somewhere. ReTextWindowNastaven Preferences ReTextWindow NhledPreview ReTextWindowPYedchozPrevious ReTextWindowTisknoutPrint ReTextWindow"Tisknout dokumentPrint document ReTextWindowNhled tisku Print preview ReTextWindowUkon itQuit ReTextWindow ZnovuRedo ReTextWindow Ulo~itSave ReTextWindowUlo~it jakoSave as ReTextWindowUlo~it soubor Save file ReTextWindow NajtSearch ReTextWindow,Nstrojov liata NajtSearch toolbar ReTextWindowHVyberte ze seznamu kdovn souboru:#Select file encoding from the list: ReTextWindowTVyberte jeden nebo vce souboro k otevYen#Select one or several files to open ReTextWindow"Nastavit kdovn Set encoding ReTextWindow&Nastavit lokalizaci Set locale ReTextWindowZobrazit slo~kuShow directory ReTextWindowxJednoduch, ale mocn editor pro Markdown a reStructuredText TBumaczenie: Kristian Kann, 2012Author: Dmitry Shachnev, 2011 ReTextWindowPogrubienieBold ReTextWindowvNie mo|na zapisa pliku, poniewa| jest on tylko do odczytu!,Cannot save to file because it is read-only! ReTextWindow:Rozr|nianie wielko[ci znakwCase sensitively ReTextWindowSkopiujCopy ReTextWindow WytnijCut ReTextWindow EdycjaEdit ReTextWindowPasek edycji Edit toolbar ReTextWindow WBczEnable ReTextWindowEksportujExport ReTextWindow$Eksportuj dokumentExport document ReTextWindow Eksportuj do ODTExport document to ODT ReTextWindow Eksportuj do PDFExport document to PDF ReTextWindowBBBd podczas wykonywania komendy:Failed to execute the command: ReTextWindowPlikFile ReTextWindowPasek pliku File toolbar ReTextWindowZnajdz tekst Find text ReTextWindowFormatowanie Formatting ReTextWindowPeBny ekranFullscreen mode ReTextWindowPomoc onlineGet help online ReTextWindowKod HTML HTML code ReTextWindow2Pliki HTML (*.html *.htm)HTML files (*.html *.htm) ReTextWindow PomocHelp ReTextWindowKursywaItalic ReTextWindowPodgld na |ywo Live preview ReTextWindow"SkBadnia MarkdownMarkdown syntax ReTextWindowNowyNew ReTextWindowNowy dokument New document ReTextWindowNastpnyNext ReTextWindow OtwrzOpen ReTextWindowOtwrz ostatnie Open recent ReTextWindow<Dokumenty OpenDokument (*.odt)OpenDocument text files (*.odt) ReTextWindow"Pliki PDF (*.pdf)PDF files (*.pdf) ReTextWindow WklejPaste ReTextWindow(ZwykBy tekst (*.txt)Plain text (*.txt) ReTextWindow:Prosz najpierw zapisa plik. Please, save the file somewhere. ReTextWindowPodgldPreview ReTextWindowPoprzedniPrevious ReTextWindow DrukujPrint ReTextWindowDrukuj dokumentPrint document ReTextWindowPodgld wydruku Print preview ReTextWindowZakoDczQuit ReTextWindow PonwRedo ReTextWindow ZapiszSave ReTextWindowZapisz jakoSave as ReTextWindowZapisz plik Save file ReTextWindowWyszukajSearch ReTextWindow$Pasek wyszukiwaniaSearch toolbar ReTextWindowVZaznacz jeden lub wicej plikw do otwarcia#Select one or several files to open ReTextWindowUstaw jzyk Set locale ReTextWindowPoka| katalogShow directory ReTextWindowlProsty, ale pot|ny edytor Markdown i reStructuredText ConfigDialog Behavior Automatically save documents Restore window geometry Open external links in ReText window Editor Highlight current line Show line numbers Tab key inserts spaces Tabulation width Display right margin at column Interface Icon theme name Stylesheet file Markdown syntax extensions (comma-separated) Help Ayuda Use live preview by default FileSelectButton (none) Select file to open LocaleDialog Enter locale name (example: en_US) Escriba el nombre de la localidad (ejemplo: es_MX) Set as default Establecer como predeterminado Proxy No write since last change (add ! to override) Information ReTextTab New document Documento nuevo Could not parse file contents, check if you have the <a href="%s">necessary module</a> installed! No se pudo analizar el contenido del archivo, compruebe si tiene el <a href="%s">módulo necesario</a> instalado. ReTextWindow File toolbar Barra de archivos Edit toolbar Barra de edición Search toolbar Barra de búsqueda New Nuevo Open Abrir Save Guardar Save as Guardar como Print Imprimir Print preview Previsualización de impresión View HTML code Ver código HTML Find text Buscar texto Preview Previsualización Live preview Previsualización en vivo Fullscreen mode Pantalla completa Quit Salir Undo Deshacer Redo Rehacer Copy Copiar Cut Cortar Paste Pegar Enable Activar Set locale Establecer local Use WebKit renderer Usar renderizador WebKit Next Siguiente Previous Anterior Get help online Obtener ayuda en línea About ReText Acerca de ReText About Qt Acerca de Qt Bold Negrita Italic Cursiva Underline Subrayado Tags Etiquetas Symbols Símbolos File Archivo Edit Editar Help Ayuda Open recent Abrir recientes Export Exportar Spell check Revisar ortografía Formatting Formato Search Buscar Case sensitively Distinguir mayúsculas y minúsculas New document Documento nuevo Please, save the file somewhere. Guarde el archivo en algún lugar. Show directory Mostrar directorio Select one or several files to open Seleccione uno o varios archivos a abrir Supported files Archivos compatibles All files (*) Todos los archivos (*) Plain text (*.txt) Texto plano (*.txt) %s files Example of final string: Markdown files %s archivos Save file Guardar archivo Cannot save to file because it is read-only! No se puede guardar el archivo porque es de solo lectura. Export document to ODT Exportar documento a ODT OpenDocument text files (*.odt) Archivos de texto OpenDocument (*.odt) HTML files (*.html *.htm) Archivos HTML (*.html *.htm) Export document to PDF Exportar documento a PDF PDF files (*.pdf) Archivos PDF (*.pdf) Print document Imprimir documento Export document Exportar documento Failed to execute the command: Fallo al ejecutar el comando: The document has been modified. Do you want to save your changes? El documento ha sido modificado. ¿Quiere guardar sus cambios? HTML code Código HTML Simple but powerful editor for Markdown and reStructuredText Editor para Markdown y reStructuredText sencillo pero poderoso Author: Dmitry Shachnev, 2011 Autor: Dmitry Shachnev, 2011 Website Sitio web Markdown syntax Sintaxis Markdown reStructuredText syntax Sintaxis de reStructuredText Default markup Preferences Set encoding Select file encoding from the list: Reload Next tab Previous tab Table mode FakeVim mode This file has been deleted by other application. Please make sure you save the file before exit. This document has been modified by other application. Do you want to reload the file (this will discard all your changes)? If you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. Change editor font Change preview font ReText %s (using PyMarkups %s) ReText-5.3.1/locale/retext_zh_CN.ts0000644000175000017500000004630512701277260020014 0ustar dmitrydmitry00000000000000 ConfigDialog Behavior 行为 Automatically save documents 自动保存文件 Restore window geometry 恢复窗口位置大小 Open external links in ReText window 在 ReText 窗口中打开外部链接 Markdown syntax extensions (comma-separated) Markdown 语法扩展 (逗号分隔) Editor 编辑 Highlight current line 高亮显示当前行 Show line numbers 显示行号 Tab key inserts spaces 使用 空格 替换 Tab Tabulation width Tab 键宽度 Display right margin at column 显示右列页边距 Interface 交互界面 Icon theme name 图标主题名称 Stylesheet file 样式表文件 Help 帮助 Use live preview by default FileSelectButton (none) (无) Select file to open 打开文件 LocaleDialog Enter locale name (example: en_US) 输入语言名称 (例如: zh_CN) Set as default 设为默认 Proxy No write since last change (add ! to override) 已修改但尚未保存(可用 ! 强制执行) Information 信息 ReTextTab New document 新文件 Could not parse file contents, check if you have the <a href="%s">necessary module</a> installed! 不能处理文件内容,检查你是否安装了 <a href="%s">必需的模块</a>! ReTextWindow File toolbar 文件工具栏 Edit toolbar 编辑工具栏 Search toolbar 搜索工具栏 New 新建 Open 打开 Set encoding 设置编码方式 Reload 重载 Save 保存 Save as 另存为 Next tab 下一个标签 Previous tab 上一个标签 Print 打印 Print preview 打印预览 View HTML code 查看 HTML 代码 Change editor font 修改编辑器字体 Change preview font 修改预览字体 Find text 查找文本 Preview 预览 Live preview 实时预览 Table mode 表格样式 FakeVim mode FakeVim 模式 Fullscreen mode 全屏模式 Preferences 个人偏好 Quit 退出 Undo 取消 Redo 重做 Copy 复制 Cut 剪切 Paste 粘贴 Enable 激活 Set locale 选择界面语言 Use WebKit renderer 使用 WebKit 渲染 Show directory 显示文件夹 Next 下一项 Previous 上一项 Get help online 在线获取帮助(英文) About ReText 关于 ReText About Qt 关于 Qt Bold 加粗 Italic 倾斜 Underline 下划线 Tags 标签 Symbols 符号 File 文件 Edit 编辑 Help 帮助 Open recent 打开最近使用 Export 导出 Spell check 拼写检查 Default markup 默认编辑模式 Formatting 字符样式 Search 搜索 Case sensitively 对大小写敏感 New document 新文件 Please, save the file somewhere. 请,保存到别的地方呦! Select one or several files to open 选择一个或多个文件打开 Supported files 支持的文件类型 All files (*) 全部文件 (*) Select file encoding from the list: 从列表中选择文件编码方式 Plain text (*.txt) 普通文本文档 (*.txt) %s files Example of final string: Markdown files %s 文件 Save file 保存文件 Cannot save to file because it is read-only! 不能保存文件因为当前文件或文件夹只读! Export document to ODT 导出文件到 ODT OpenDocument text files (*.odt) OpenDocument 文本文件 (*.odt) HTML files (*.html *.htm) HTML 文件 (*.html *.htm) Export document to PDF 导出文件到 PDF PDF files (*.pdf) PDF 文件 (*.pdf) Print document 打印文件 Export document 导出文件 Failed to execute the command: 不能执行命令: This file has been deleted by other application. Please make sure you save the file before exit. 此文件已被其他应用程序删除。 请确保在退出程序前保存了文件。 This document has been modified by other application. Do you want to reload the file (this will discard all your changes)? 文件已被其他程序修改。 要重新载入文件(丢弃所有修改)吗? If you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. 如果不重新载入文件,将禁用该会话的自动保存模式,以防止数据丢失。 The document has been modified. Do you want to save your changes? 文件已更改,确认保存吗? HTML code HTML 代码 ReText %s (using PyMarkups %s) ReText %s(使用 PyMarkups %s) Simple but powerful editor for Markdown and reStructuredText 简单高效的 Markdown 与 ReStructuredText 编辑器 Author: Dmitry Shachnev, 2011 作者: Dmitry Shachnev, 2011 Website 网站 Markdown syntax Markdown 语法 reStructuredText syntax reStructuredText 语法 ReText-5.3.1/locale/retext_sk.qm0000644000175000017500000001374412701277414017421 0ustar dmitrydmitry00000000000000kosti psmenCase sensitively ReTextWindowKoprovaeCopy ReTextWindowVystrihneCut ReTextWindowUpravieEdit ReTextWindow4Panel nstrojov pre pravy Edit toolbar ReTextWindowPovolieEnable ReTextWindow ExportExport ReTextWindow&Exportovae dokumentExport document ReTextWindow4Exportovae dokument do ODTExport document to ODT ReTextWindow4Exportovae dokument do PDFExport document to PDF ReTextWindow:Nepodarilo sa spustie prkaz:Failed to execute the command: ReTextWindow SborFile ReTextWindow2Panel nstrojov pre sbor File toolbar ReTextWindowNjse text Find text ReTextWindowFormtovanie Formatting ReTextWindow*Celoobrazovkov re~imFullscreen mode ReTextWindow&Zskae online pomocGet help online ReTextWindowHTML kd HTML code ReTextWindow4HTML sbory (*.html *.htm)HTML files (*.html *.htm) ReTextWindowPomocnkHelp ReTextWindowKurzvaItalic ReTextWindow Priebe~n nh>ad Live preview ReTextWindowMarkdown syntaxMarkdown syntax ReTextWindowNovNew ReTextWindowNov dokument New document ReTextWindowNasledujciNext ReTextWindowOtvorieOpen ReTextWindowOtvorie nedvne Open recent ReTextWindowFOpenDocument textov sbory (*.odt)OpenDocument text files (*.odt) ReTextWindow$PDF sbory (*.pdf)PDF files (*.pdf) ReTextWindow Vlo~iePaste ReTextWindow.Jednoduch text (*.txt)Plain text (*.txt) ReTextWindow6Ulo~te prosm niekam sbor. Please, save the file somewhere. ReTextWindow Nh>adPreview ReTextWindowPredchdzajciPrevious ReTextWindow Tla iePrint ReTextWindowTla ie dokumentPrint document ReTextWindow$Uk~ka pred tla ou Print preview ReTextWindowQuitQuit ReTextWindow ZnovaRedo ReTextWindow Ulo~ieSave ReTextWindowUlo~ie akoSave as ReTextWindowUlo~ie sbor Save file ReTextWindowVyh>advanieSearch ReTextWindow@Panel nstrojov pre vyh>advanieSearch toolbar ReTextWindowXVyberte jeden alebo viac sborov k otvoreniu#Select one or several files to open ReTextWindow(Nastavie lokalizciu Set locale ReTextWindow$Zobrazie prie inokShow directory ReTextWindowJednoduch a pritom efektvny editor pre Markdown a reStructuredTextovaniu WebKitUse WebKit renderer ReTextWindow"Zobrazie HTML kdView HTML code ReTextWindowWebov strnkaWebsite ReTextWindow.reStructuredText syntaxreStructuredText syntax ReTextWindowReText-5.3.1/locale/retext_ja.qm0000644000175000017500000002041512701277414017367 0ustar dmitrydmitry00000000000000,bdy:Yc'cz rg l)~ by% {v  r#S4JPmr~5t]o' (0 Euϗ P T)+I89HD.~R7X g @ * la vx _ʼn0j00000</a> 0L0000000U00f0D00Kx0W0f0O0`0U0D0aCould not parse file contents, check if you have the necessary module installed! ReTextTabeef New document ReTextTab%s 0000%s files ReTextWindow Qt0k0d0D0fAbout Qt ReTextWindowReText0k0d0D0f About ReText ReTextWindow0Y0y0f0n0000 (*) All files (*) ReTextWindow2O\: Dmitry Shachnev, 2011Author: Dmitry Shachnev, 2011 ReTextWindowY*[WBold ReTextWindow*0S0\u(00000n0_0O[X0g0M0~0[00,Cannot save to file because it is read-only! ReTextWindowY'e[W0h\e[W0S:R%Case sensitively ReTextWindow000000n00000Y fChange editor font ReTextWindow000000n00000Y fChange preview font ReTextWindow000Copy ReTextWindowR0S0Cut ReTextWindow00000000000Default markup ReTextWindow}Edit ReTextWindow}00000 Edit toolbar ReTextWindowg REnable ReTextWindow 000000Export ReTextWindowef0000000Export document ReTextWindowef0ODT0k000000Export document to ODT ReTextWindowef0PDF0k000000Export document to PDF ReTextWindow00000n[L0kY1eW0W0~0W0_:Failed to execute the command: ReTextWindowdO<Vim000 FakeVim mode ReTextWindow0000File ReTextWindow000000000 File toolbar ReTextWindow00000i}" Find text ReTextWindowf_ Formatting ReTextWindow0000000000Fullscreen mode ReTextWindow000000g00000Get help online ReTextWindowHTML000 HTML code ReTextWindow.HTML0000 (*.html *.htm)HTML files (*.html *.htm) ReTextWindow000Help ReTextWindowdQ000xb0W0j0DX4T00000nmY100Q00_00kRO[Xj_0o0S0n000000gq!R0k0j00~0Y0lIf you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. ReTextWindoweOSItalic ReTextWindow00000000 Live preview ReTextWindowMarkdown lMarkdown syntax ReTextWindoweNew ReTextWindoweef New document ReTextWindowk!0xNext ReTextWindow k!0n000xNext tab ReTextWindow0OOpen ReTextWindowgOu(0W0_0000 Open recent ReTextWindow8OpenDocument00000000 (*.odt)OpenDocument text files (*.odt) ReTextWindowPDF0000 (*.pdf)PDF files (*.pdf) ReTextWindow0N0QPaste ReTextWindow 00000000 (*.txt)Plain text (*.txt) ReTextWindow$0i0S0K0k00000O[X0W0f0O0`0U0D0 Please, save the file somewhere. ReTextWindow-[ Preferences ReTextWindow 00000Preview ReTextWindowRM0xPrevious ReTextWindow RM0n000x Previous tab ReTextWindowSpR7Print ReTextWindow ef0SpR7Print document ReTextWindowSpR700000 Print preview ReTextWindow}BNQuit ReTextWindow4ReText %s(PyMarkups %s R)u()ReText %s (using PyMarkups %s) ReTextWindow00v0YRedo ReTextWindow Q00Reload ReTextWindowO[XSave ReTextWindowT RM0N0Q0fO[XSave as ReTextWindow00000O[X Save file ReTextWindowi}"Search ReTextWindowi}"00000Search toolbar ReTextWindow000000ne[W000000000x00g0O0`0U0D#Select file encoding from the list: ReTextWindow,0M0_0D0000epS 0xb0W0f0O0`0U0D#Select one or several files to open ReTextWindowe[W00000000 Set encoding ReTextWindow00000n-[ Set locale ReTextWindow0000000hy:Show directory ReTextWindow\Markdown 0h reStructuredText 0n0_00n00000g00000j0000 ConfigDialog Behavior Működés Automatically save documents Automatikusan mentse a dokumentumokat Restore window geometry Az ablak méretének visszaállítása Open external links in ReText window Külső hivatkozások megnyitása a ReText-ben Editor Szerkesztő Highlight current line Aktuális sor kiemelése Show line numbers Sorszámok megjelenítése Tab key inserts spaces A tabulátor szóközöket használ Tabulation width Tabulátorszélesség Display right margin at column Jobb oldali margó mutatása Interface Program felület Icon theme name Ikontéma neve Stylesheet file Markdown syntax extensions (comma-separated) Help Súgó Use live preview by default FileSelectButton (none) Select file to open LocaleDialog Enter locale name (example: en_US) Nyelv megadása (például: hu_HU) Set as default Beállítás alapértelmezettként Proxy No write since last change (add ! to override) Information ReTextTab New document Új dokumentum Could not parse file contents, check if you have the <a href="%s">necessary module</a> installed! Nem tudtuk elemezni a fájl tartalmát, kérjük ellenőrizze, hogy a <a href="%s">szükséges modul</a> telepítve van-e! ReTextWindow File toolbar Fájl eszköztár Edit toolbar Szerkesztés eszköztár Search toolbar Keresés eszköztár New Új Open Megnyitás Save Mentés Set encoding Kódolás Save as Mentés másként... Print Nyomtatás Print preview Nyomtatási előnézet View HTML code HTML kód megtekintése Find text Szöveg keresése Preview Előnézet Live preview Élő előnézet Fullscreen mode Teljes képernyő Preferences Beállítások Quit Kilépés Undo Visszavonás Redo Újra végrehajtás Copy Másolás Cut Kivágás Paste Beillesztés Enable Engedélyezés Set locale Nyelv beállítása Use WebKit renderer Használja a WebKit megjelenítőt Next Következő Previous Előző Get help online Online súgó About ReText Névjegy: ReText About Qt Névjegy: Qt Bold Félkövér Italic Dőlt Underline Aláhúzás Tags Tag-ek Symbols Szimbólumok File Fájl Edit Szerkesztés Help Súgó Open recent Legutóbbi megnyitása Export Exportálás Spell check Helyesírás-ellenőrzés Default markup Alapértelmezett formátum Formatting Formázás Search Keresés Case sensitively Betűérzékeny New document Új dokumentum Please, save the file somewhere. Kérjük mentse el a fájlt másik helyre. Show directory Mappa mutatása Select one or several files to open Jelöljön ki egy vagy több fájlt megnyitásra Supported files Támogatott fájltípusok All files (*) Minden fájl (*) Select file encoding from the list: Válassza ki a kódolást a listából: Plain text (*.txt) Egyszerű szöveg (*.txt) %s files Example of final string: Markdown files %s fájlok Save file Fájl mentése Cannot save to file because it is read-only! Nem menthető, mert a fájl írásvédett! Export document to ODT Dokumentum exportálása ODT formátumba OpenDocument text files (*.odt) OpenDocument szöveg fájlok (*.odt) HTML files (*.html *.htm) HTML fájlok (*.html *.htm) Export document to PDF Dokumentum exportálása PDF-be PDF files (*.pdf) PDF fájlok (*.pdf) Print document Dokumentum nyomtatása Export document Dokumentum exportálása Failed to execute the command: Nem tudtuk végrehajtani ezt a parancsot: The document has been modified. Do you want to save your changes? Ezt a dokumentumot ön módosította. El kívánja menteni a változtatásokat? HTML code HTML kód Simple but powerful editor for Markdown and reStructuredText Egyszerű, de nagy tudású Markdown és reStructuredText szerkesztő Author: Dmitry Shachnev, 2011 Szerző: Dmitry Shachnev, 2011 Website Weboldal Markdown syntax Markdown szintaxis reStructuredText syntax reStructuredText szintaxis Reload Next tab Previous tab Table mode FakeVim mode This file has been deleted by other application. Please make sure you save the file before exit. This document has been modified by other application. Do you want to reload the file (this will discard all your changes)? If you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. Change editor font Change preview font ReText %s (using PyMarkups %s) ReText-5.3.1/locale/retext_hu.qm0000644000175000017500000002036212701277414017412 0ustar dmitrydmitry00000000000000fuįnB7kVWTkZSʇsBwL"nunw52F)l64 >bYc'zcg b1y% Nv  #SmZr' J0 EϗFQ T) +I9HD.~  @ la v? Nyelv megadsa (pldul: hu_HU)"Enter locale name (example: en_US) LocaleDialog:Bellts alaprtelmezettkntSet as default LocaleDialogNem tudtuk elemezni a fjl tartalmt, krjk ellenQrizze, hogy a <a href="%s">szksges modul</a> teleptve van-e!aCould not parse file contents, check if you have the necessary module installed! ReTextTabj dokumentum New document ReTextTab%s fjlok%s files ReTextWindowNvjegy: QtAbout Qt ReTextWindowNvjegy: ReText About ReText ReTextWindowMinden fjl (*) All files (*) ReTextWindow:SzerzQ: Dmitry Shachnev, 2011Author: Dmitry Shachnev, 2011 ReTextWindowFlkvrBold ReTextWindowJNem menthetQ, mert a fjl rsvdett!,Cannot save to file because it is read-only! ReTextWindowBetqrzkenyCase sensitively ReTextWindowMsolsCopy ReTextWindowKivgsCut ReTextWindow0Alaprtelmezett formtumDefault markup ReTextWindowSzerkesztsEdit ReTextWindow*Szerkeszts eszkztr Edit toolbar ReTextWindowEngedlyezsEnable ReTextWindowExportlsExport ReTextWindow,Dokumentum exportlsaExport document ReTextWindowJDokumentum exportlsa ODT formtumbaExport document to ODT ReTextWindow:Dokumentum exportlsa PDF-beExport document to PDF ReTextWindowPNem tudtuk vgrehajtani ezt a parancsot:Failed to execute the command: ReTextWindowFjlFile ReTextWindowFjl eszkztr File toolbar ReTextWindowSzveg keresse Find text ReTextWindowFormzs Formatting ReTextWindowTeljes kpernyQFullscreen mode ReTextWindowOnline sgGet help online ReTextWindowHTML kd HTML code ReTextWindow4HTML fjlok (*.html *.htm)HTML files (*.html *.htm) ReTextWindowSgHelp ReTextWindowDQltItalic ReTextWindowlQ elQnzet Live preview ReTextWindow$Markdown szintaxisMarkdown syntax ReTextWindowjNew ReTextWindowj dokumentum New document ReTextWindowKvetkezQNext ReTextWindowMegnyitsOpen ReTextWindow(Legutbbi megnyitsa Open recent ReTextWindowDOpenDocument szveg fjlok (*.odt)OpenDocument text files (*.odt) ReTextWindow$PDF fjlok (*.pdf)PDF files (*.pdf) ReTextWindowBeillesztsPaste ReTextWindow.Egyszerq szveg (*.txt)Plain text (*.txt) ReTextWindowLKrjk mentse el a fjlt msik helyre. Please, save the file somewhere. ReTextWindowBelltsok Preferences ReTextWindowElQnzetPreview ReTextWindow ElQzQPrevious ReTextWindowNyomtatsPrint ReTextWindow*Dokumentum nyomtatsaPrint document ReTextWindow&Nyomtatsi elQnzet Print preview ReTextWindowKilpsQuit ReTextWindow jra vgrehajtsRedo ReTextWindow MentsSave ReTextWindow"Ments msknt...Save as ReTextWindowFjl mentse Save file ReTextWindowKeressSearch ReTextWindow"Keress eszkztrSearch toolbar ReTextWindowDVlassza ki a kdolst a listbl:#Select file encoding from the list: ReTextWindowVJelljn ki egy vagy tbb fjlt megnyitsra#Select one or several files to open ReTextWindowKdols Set encoding ReTextWindow Nyelv belltsa Set locale ReTextWindowMappa mutatsaShow directory ReTextWindowEgyszerq, de nagy tuds Markdown s reStructuredText szerkesztQHasznlja a WebKit megjelentQtUse WebKit renderer ReTextWindow*HTML kd megtekintseView HTML code ReTextWindowWeboldalWebsite ReTextWindow4reStructuredText szintaxisreStructuredText syntax ReTextWindowReText-5.3.1/locale/retext_et.qm0000644000175000017500000001344612701277414017413 0ustar dmitrydmitry00000000000000 ConfigDialog Behavior Comportamento Automatically save documents Salvar documentos automaticamente Restore window geometry Restaurar a geometria da janela Open external links in ReText window Abrir links externos na janela ReText Markdown syntax extensions (comma-separated) Extensões de sintáxe Markdown (separadas por vírgulas) Editor Editor Highlight current line Destacar linha atual Show line numbers Mostrar números de linhas Tab key inserts spaces Tab insere espaços Tabulation width Tamanho da tabulação Display right margin at column Mostar margem direita na coluna Interface Interface Icon theme name Nome do ícone tema Stylesheet file Arquivo de estilos Help Ajuda Use live preview by default FileSelectButton (none) (nenhum) Select file to open Selecione um arquivo para abrir LocaleDialog Enter locale name (example: en_US) Forneça o nome da localidade (exemplo: pt_BR) Set as default Definir como padrão Proxy No write since last change (add ! to override) O arquivo não foi salvo (adicione um '!' para sobrescrever) Information Informação ReTextTab New document Novo documento Could not parse file contents, check if you have the <a href="%s">necessary module</a> installed! Não foi possível analisar conteúdo do arquivo, verifique se você tem o <a href="%s">modulo necessário</a> instalado! ReTextWindow File toolbar Barra de ferramentas Arquivo Edit toolbar Barra de ferramentas Editar Search toolbar Barra de ferramentas Pesquisar New Novo Open Abrir Set encoding Definir codificação Reload Recarregar Save Salvar Save as Salvar como Next tab Próxima aba Previous tab Aba anterior Print Imprimir Print preview Visualizar impressão View HTML code Visualizar código HTML Change editor font Mudar fonte do editor Change preview font Mudar fonte da visualização Find text Encontrar texto Preview Visualizar Live preview Visualização automática Table mode Modo de entrada de tabela FakeVim mode Modo de entrada FakeVim Fullscreen mode Modo tela cheia Preferences Preferências Quit Sair Undo Desfazer Redo Refazer Copy Copiar Cut Recortar Paste Colar Enable Habilitar Set locale Definir localidade Use WebKit renderer Utilizar renderizador WebKit Show directory Exibir diretório Next Seguinte Previous Anterior Get help online Ajuda online About ReText Sobre ReText About Qt Sobre Qt Bold Negrito Italic Itálico Underline Sublinhado Tags Tags Symbols Símbolos File Arquivo Edit Editar Help Ajuda Open recent Abrir recente Export Exportar Spell check Correção ortográfica Default markup Marcação padrão Formatting Formatar Search Pesquisar Case sensitively Diferenciando maiúsculas e minúsculas New document Novo documento Please, save the file somewhere. Por favor, salve o arquivo em outra localização. Select one or several files to open Selecione um ou mais arquivos para abrir Supported files Arquivos suportados All files (*) Todos os arquivos (*) Select file encoding from the list: Selecione a codificação de arquivo da lista: Plain text (*.txt) Texto simples (*.txt) %s files Example of final string: Markdown files %s arquivos Save file Salvar arquivo Cannot save to file because it is read-only! Não é possível salvar arquivo somente leitura! Export document to ODT Exportar documento para ODT OpenDocument text files (*.odt) Arquivos de texto OpenDocument (*.odt) HTML files (*.html *.htm) Arquivos HTML (*.html, *.htm) Export document to PDF Exportar documento para PDF PDF files (*.pdf) Arquivos PDF (*.pdf) Print document Imprimir documento Export document Exportar documento Failed to execute the command: Falha ao executar o comando: This file has been deleted by other application. Please make sure you save the file before exit. O arquivo foi apagado por outro programa. Certifique-se de salvá-lo antes de sair. This document has been modified by other application. Do you want to reload the file (this will discard all your changes)? O documento foi modificado por outro programa. Gostaria de recarregar o arquivo? (isso descartará suas alterações) If you choose to not reload the file, auto save mode will be disabled for this session to prevent data loss. So você escolher por não recarregar o arquivo, o modo de autossalvamento será desabilitado nessa sessão para prevenir a perda de dados. The document has been modified. Do you want to save your changes? O documento foi modificado. Deseja salvar as alterações? HTML code Código HTML ReText %s (using PyMarkups %s) ReText %s (usando PyMarkups %s) Simple but powerful editor for Markdown and reStructuredText Simples e poderoso editor para Markdown e reStructuredText Author: Dmitry Shachnev, 2011 Autor: Dmitry Shachnev, 2011 Website Website Markdown syntax Sintaxe Markdown reStructuredText syntax Sintaxe reStructuredText ReText-5.3.1/locale/retext_es.qm0000644000175000017500000001523312701277414017406 0ustar dmitrydmitry00000000000000mdulo necesario</a> instalado.aCould not parse file contents, check if you have the necessary module installed! ReTextTabDocumento nuevo New document ReTextTab%s archivos%s files ReTextWindowAcerca de QtAbout Qt ReTextWindow Acerca de ReText About ReText ReTextWindow,Todos los archivos (*) All files (*) ReTextWindow8Autor: Dmitry Shachnev, 2011Author: Dmitry Shachnev, 2011 ReTextWindowNegritaBold ReTextWindowrNo se puede guardar el archivo porque es de solo lectura.,Cannot save to file because it is read-only! ReTextWindowDDistinguir maysculas y minsculasCase sensitively ReTextWindow CopiarCopy ReTextWindow CortarCut ReTextWindow EditarEdit ReTextWindow Barra de edicin Edit toolbar ReTextWindowActivarEnable ReTextWindowExportarExport ReTextWindow$Exportar documentoExport document ReTextWindow0Exportar documento a ODTExport document to ODT ReTextWindow0Exportar documento a PDFExport document to PDF ReTextWindow:Fallo al ejecutar el comando:Failed to execute the command: ReTextWindowArchivoFile ReTextWindow"Barra de archivos File toolbar ReTextWindowBuscar texto Find text ReTextWindowFormato Formatting ReTextWindow"Pantalla completaFullscreen mode ReTextWindow,Obtener ayuda en lneaGet help online ReTextWindowCdigo HTML HTML code ReTextWindow8Archivos HTML (*.html *.htm)HTML files (*.html *.htm) ReTextWindow AyudaHelp ReTextWindowCursivaItalic ReTextWindow0Previsualizacin en vivo Live preview ReTextWindow"Sintaxis MarkdownMarkdown syntax ReTextWindow NuevoNew ReTextWindowDocumento nuevo New document ReTextWindowSiguienteNext ReTextWindow AbrirOpen ReTextWindowAbrir recientes Open recent ReTextWindowLArchivos de texto OpenDocument (*.odt)OpenDocument text files (*.odt) ReTextWindow(Archivos PDF (*.pdf)PDF files (*.pdf) ReTextWindow PegarPaste ReTextWindow&Texto plano (*.txt)Plain text (*.txt) ReTextWindowBGuarde el archivo en algn lugar. Please, save the file somewhere. ReTextWindow PrevisualizacinPreview ReTextWindowAnteriorPrevious ReTextWindowImprimirPrint ReTextWindow$Imprimir documentoPrint document ReTextWindow:Previsualizacin de impresin Print preview ReTextWindow SalirQuit ReTextWindowRehacerRedo ReTextWindowGuardarSave ReTextWindowGuardar comoSave as ReTextWindowGuardar archivo Save file ReTextWindow BuscarSearch ReTextWindow"Barra de bsquedaSearch toolbar ReTextWindowPSeleccione uno o varios archivos a abrir#Select one or several files to open ReTextWindow Establecer local Set locale ReTextWindow$Mostrar directorioShow directory ReTextWindow|Editor para Markdown y reStructuredText sencillo pero poderoso. import sys import signal from os.path import join from ReText import datadirs, globalSettings, app_version from ReText.window import ReTextWindow from PyQt5.QtCore import QFile, QFileInfo, QIODevice, QLibraryInfo, \ QTextStream, QTranslator from PyQt5.QtWidgets import QApplication from PyQt5.QtNetwork import QNetworkProxyFactory def canonicalize(option): if option == '--preview': return option return QFileInfo(option).canonicalFilePath() def main(): app = QApplication(sys.argv) app.setOrganizationName("ReText project") app.setApplicationName("ReText") app.setApplicationDisplayName("ReText") app.setApplicationVersion(app_version) app.setOrganizationDomain('mitya57.me') if hasattr(app, 'setDesktopFileName'): # available since Qt 5.7 app.setDesktopFileName('me.mitya57.ReText.desktop') QNetworkProxyFactory.setUseSystemConfiguration(True) RtTranslator = QTranslator() for path in datadirs: if RtTranslator.load('retext_' + globalSettings.uiLanguage, join(path, 'locale')): break QtTranslator = QTranslator() QtTranslator.load("qt_" + globalSettings.uiLanguage, QLibraryInfo.location(QLibraryInfo.TranslationsPath)) app.installTranslator(RtTranslator) app.installTranslator(QtTranslator) if globalSettings.appStyleSheet: sheetfile = QFile(globalSettings.appStyleSheet) sheetfile.open(QIODevice.ReadOnly) app.setStyleSheet(QTextStream(sheetfile).readAll()) sheetfile.close() window = ReTextWindow() window.show() # ReText can change directory when loading files, so we # need to have a list of canonical names before loading fileNames = list(map(canonicalize, sys.argv[1:])) previewMode = False for fileName in fileNames: if QFile.exists(fileName): window.openFileWrapper(fileName) if previewMode: window.actionPreview.setChecked(True) window.preview(True) elif fileName == '--preview': previewMode = True inputData = '' if sys.stdin.isatty() else sys.stdin.read() if inputData or not window.tabWidget.count(): window.createNew(inputData) signal.signal(signal.SIGINT, lambda sig, frame: window.close()) sys.exit(app.exec()) if __name__ == '__main__': main() ReText-5.3.1/changelog.md0000644000175000017500000000723012701272775016062 0ustar dmitrydmitry00000000000000## ReText 5.3 (2015-12-20) * Tabs are now reorderable. * All colors used in editor and highlighter are now configurable via the configuration file. * Links referencing other source files are now opened in ReText as new tabs (feature contributed by Jan Korte). * Code refactoring: some code moved to the new tab.py module, and some old hacks dropped. * The ReText logo is now installed to the data directory. * Appstream metadata updated to a newer format. * The desktop file no longer hardcodes the executable path (fix contributed by Buo-Ren Lin). ## ReText 5.2 (2015-09-23) * ReText now tries to load the icon theme from system settings if Qt cannot auto-detect it. * Added a GUI option to change the editor font. * Added appdata file for appstream. ## ReText 5.1 (2015-06-30) * Editor now displays cursor position in bottom-right corner. * Added FakeVim mode (contributed by Lukas Holecek). * ReText now shows a notification when the file was modified by another application, to prevent data loss. * WebPages generator removed (as better alternatives exist). * Plain text mode removed. * Added ability to configure file extensions for Markdown and reStructuredText. ## ReText 5.0 (2014-07-26) * Table editing mode. * New settings: `colorSchemeFile` and `uiLanguage`. * More settings are now configurable from GUI. * Code base simplification and modernization. * Dropped support for Qt 4. * Added testsuite. ## ReText 4.1 (2013-08-18) * Added configuration dialog. * Added current line highlighting and line numbers support. * Added support for PyQt5 and PySide libraries. * Use new signals/slots syntax. * Added option to select file encoding. * Dropped support for Python 2 and support for running without WebKit installed. ## ReText 4.0 (2012-12-06) * Switch to pymarkups backend. * Switch to Python 3 by default. * Split `retext.py` to smaller files. * MathJax support. * Tab now inserts 4 spaces by default. * Automatic indentation of new lines. * External links are now opened in a web browser by default. * Support for per-document CSS stylesheets. ## ReText 3.1 (2012-06-07) * Spell checker suggestions. * Markup-specific highlighting. * Re-written parser and document-type logic. * Lots of code clean-up. ## ReText 3.0 (2012-03-08) * Python 3 support. * Improved highlighter. * Export extensions. * Recent files menu. * Spell checking improvements. * Shortcuts for formatting. * WebKit engine improvements. ## ReText 2.1 (2011-10-02) * Ability to use QtWebKit. * Splitter between edit and preview boxes. * Support for opening several files via command-line. * Support for GData 3 API and replacing existing document in Google Docs. * Help page. ## ReText 2.0 (2011-08-04) * Support for reStructuredText, with a GUI option to switch between Markdown and reStructuredText. * Text search. * Global CSS file support. * File auto-save support. * WpGen 0.4, also with reST support. * Getting title from ReST title or Markdown metadata. * Changed the default extension for Markdown to `.mkd`. * New “About” dialog. ## ReText 1.1 (2011-05-28) * Added spell checker based on enchant. * Added fullscreen mode. ## ReText 1.0 (2011-04-24) * First stable release. * Add “Select default font” option. * Use HTML input when Markdown is not loaded. * Add Ctrl+Shift+E sequence for Live preview. ## ReText 0.8 (2011-04-09) * Add “Show folder”, “Markdown syntax examples” actions. * Start even if Python-Markdown is not installed. * Do not highlight quotes outside the tags. * Save plain text documents with `*.txt` format. ## ReText 0.7 (2011-04-05) * Tabs support. * GUI for WpGen. * Launching preview on Ctrl+E shortcut. ## ReText 0.4 (2011-03-13) * First public beta release. ReText-5.3.1/tests/0000755000175000017500000000000012701277415014745 5ustar dmitrydmitry00000000000000ReText-5.3.1/tests/__init__.py0000644000175000017500000000014612700242644017052 0ustar dmitrydmitry00000000000000#!/usr/bin/env python3 from unittest.main import main if __name__ == '__main__': main(module=None) ReText-5.3.1/tests/test_tablemode.py0000644000175000017500000003026712701272775020326 0ustar dmitrydmitry00000000000000# This file is part of ReText # Copyright: 2014 Maurice van der Pot # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . import unittest from ReText import tablemode class TestTableMode(unittest.TestCase): def performEdit(self, text, offset, editSize, paddingchar=None, fragment=None): if editSize < 0: text = text[:offset + editSize] + text[offset:] else: fragment = paddingchar * editSize if not fragment else fragment text = text[:offset] + fragment + text[offset:] return text def checkDetermineEditLists(self, paddingChars, before, edit, after): class Row(): def __init__(self, text, separatorLine, paddingChar): self.text = text self.separatorline = separatorLine self.paddingchar = paddingChar # Do some sanity checks on the test data to catch simple mistakes self.assertEqual(len(paddingChars), len(before), 'The number of padding chars should be equal to the number of rows') self.assertEqual(len(before), len(after), 'The number of rows before and after should be the same') # Apart from spacing edit only contains a's or d's self.assertTrue(edit[1].strip(' d') == '' or edit[1].strip(' a') == '', "An edit should be a sequence of a's or d's surrounded by spaces") rows = [] for paddingChar, text in zip(paddingChars, before): rows.append(Row(text, (paddingChar != ' '), paddingChar)) editedline = edit[0] editstripped = edit[1].strip() editsize = len(editstripped) # The offset passed to _determineEditLists is the one received from the # contentsChange signal and is always the start of the set of chars # that are added or removed. contentsChangeOffset = edit[1].index(editstripped[0]) # However, the editoffset indicates the position before which chars # must be deleted or after which they must be added (just like the # offset used in the edits returned by _determineEditLists), # so for deletions we'll need to add the size of the edit to it if editstripped[0] == 'd': editsize = -editsize editoffset = contentsChangeOffset + len(editstripped) else: editoffset = contentsChangeOffset editLists = tablemode._determineEditLists(rows, edit[0], contentsChangeOffset, editsize) editedRows = [] self.assertEqual(len(editLists), len(rows)) for i, (row, editList) in enumerate(zip(rows, editLists)): editedText = row.text for editEntry in editList: editedText = self.performEdit(editedText, editEntry[0], editEntry[1], paddingchar=row.paddingchar) editedRows.append(editedText) editedRows[editedline] = self.performEdit(editedRows[editedline], editoffset, editsize, fragment=editstripped) if editedRows != after: assertMessage = ["Output differs.", "", "Input:"] + \ ["%3d '%s'" % (i, line) for i, line in enumerate(before)] + \ ["", "Edit:", "%3d '%s'" % edit, "", "Expected output:"] + \ ["%3d '%s'" % (i, line) for i, line in enumerate(after)] + \ ["", "Actual output:"] + \ ["%3d '%s'" % (i, line) for i, line in enumerate(editedRows)] self.fail('\n'.join(assertMessage)) def test_simpleInsert(self): # Insert at the start of a cell so it doesn't need to grow separatorChars = ' ' before = ['| |', '| |'] edit = (0, ' a ') after = ['|a |', '| |'] self.checkDetermineEditLists(separatorChars, before, edit, after) # Insert at the last position in a cell where it doesn't need to grow separatorChars = ' ' before = ['| |', '| |'] edit = (0, ' a') after = ['| a|', '| |'] self.checkDetermineEditLists(separatorChars, before, edit, after) # Insert at the end of a cell so it will have to grow separatorChars = ' ' before = ['| |', '| |'] edit = (0, ' a') after = ['| a|', '| |'] self.checkDetermineEditLists(separatorChars, before, edit, after) def test_insertPushAhead(self): # Insert with enough room to push without growing the cell separatorChars = ' ' before = ['| x |', '| |'] edit = (0, ' a ') after = ['|a x|', '| |'] self.checkDetermineEditLists(separatorChars, before, edit, after) # Insert without enough room to push, so the cell will have to grow separatorChars = ' ' before = ['| x|', '| |'] edit = (0, ' a ') after = ['|a x|', '| |'] self.checkDetermineEditLists(separatorChars, before, edit, after) # Insert multiple characters forcing a partial grow separatorChars = ' ' before = ['| |', '| |'] edit = (0, ' aaaaaa') after = ['| aaaaaa|', '| |'] # Insert multiple characters forcing a partial grow through pushing other chars ahead separatorChars = ' ' before = ['| bb |', '| |'] edit = (0, ' aaaaaaa') after = ['| aaaaaaabb|', '| |'] self.checkDetermineEditLists(separatorChars, before, edit, after) def test_insertInSeparatorCell(self): # Insert in a cell on a separator line separatorChars = ' -' before = ['| |', '|----|'] edit = (1, ' a ') after = ['| |', '|--a-|'] self.checkDetermineEditLists(separatorChars, before, edit, after) # Insert in a cell on a separator line forcing it to grow separatorChars = ' -' before = ['| |', '|----|'] edit = (1, ' a ') after = ['| |', '|---a-|'] self.checkDetermineEditLists(separatorChars, before, edit, after) # Insert in a cell on a separator line with an alignment marker separatorChars = ' -' before = ['| |', '|---:|'] edit = (1, ' a ') after = ['| |', '|--a:|'] self.checkDetermineEditLists(separatorChars, before, edit, after) # Insert in a cell on a separator line with an alignment marker forcing it to grow separatorChars = ' -' before = ['| |', '|---:|'] edit = (1, ' a ') after = ['| |', '|---a:|'] self.checkDetermineEditLists(separatorChars, before, edit, after) # Insert in a cell on a separator line after the alignment marker forcing it to grow separatorChars = ' -' before = ['| |', '|---:|'] edit = (1, ' a') after = ['| |', '|---:a|'] self.checkDetermineEditLists(separatorChars, before, edit, after) def test_insertAboveSeparatorLine(self): # Insert on another line, without growing the cell separatorChars = ' -' before = ['| |', '|----|'] edit = (0, ' a') after = ['| a|', '|----|'] self.checkDetermineEditLists(separatorChars, before, edit, after) # Insert on another line, forcing the separator cell to grow separatorChars = ' -' before = ['| |', '|----|'] edit = (0, ' a') after = ['| a|', '|-----|'] self.checkDetermineEditLists(separatorChars, before, edit, after) # Insert on another line, without growing the cell with alignment marker separatorChars = ' -' before = ['| |', '|---:|'] edit = (0, ' a') after = ['| a|', '|---:|'] self.checkDetermineEditLists(separatorChars, before, edit, after) # Insert on another line, forcing the separator cell with alignment marker to grow separatorChars = ' -' before = ['| |', '|---:|'] edit = (0, ' a') after = ['| a|', '|----:|'] self.checkDetermineEditLists(separatorChars, before, edit, after) # Insert on another line, forcing the separator cell that ends with a regular char to grow separatorChars = ' -' before = ['| |', '|--- |'] edit = (0, ' a') after = ['| a|', '|---- |'] self.checkDetermineEditLists(separatorChars, before, edit, after) def test_insertCascade(self): # Test if growing of cells cascades onto other lines through edges that are shifted separatorChars = ' ' before = ['| |', ' | |', ' | |', ' |'] edit = (0, ' a') after = ['| a|', ' | |', ' | |', ' |'] self.checkDetermineEditLists(separatorChars, before, edit, after) # Test if growing of cells cascades onto other lines but does not affect unconnected edges separatorChars = ' ' before = ['| |', ' | |', ' | | |'] edit = (0, ' a') after = ['| a|', ' | |', ' | | |'] self.checkDetermineEditLists(separatorChars, before, edit, after) def test_simpleDelete(self): # Delete at start of cell separatorChars = ' ' before = ['|abcd|', '| |'] edit = (0, ' d ') after = ['|bcd|', '| |'] self.checkDetermineEditLists(separatorChars, before, edit, after) # Delete at end of cell separatorChars = ' ' before = ['|abcd|', '| |'] edit = (0, ' d') after = ['|abc|', '| |'] self.checkDetermineEditLists(separatorChars, before, edit, after) def test_deleteShrinking(self): # Shrinking limited by cell on other row separatorChars = ' ' before = ['|abc |', '|efgh|'] edit = (0, ' d ') after = ['|bc |', '|efgh|'] # Shrinking limited by cell on other row (cont'd) separatorChars = ' ' before = ['|abcd|', '|efgh|'] edit = (0, ' d') after = ['|abc |', '|efgh|'] self.checkDetermineEditLists(separatorChars, before, edit, after) # Shrinking of next cell limited by cell on other row separatorChars = ' ' before = ['|abc | |', '|efghijklm|'] edit = (0, ' d ') after = ['|bc | |', '|efghijklm|'] self.checkDetermineEditLists(separatorChars, before, edit, after) # Shrink current cell fully, shrink next cell partially separatorChars = ' ' before = ['| aabb| |', '|xxxxxxxx |'] edit = (0, ' dddd') after = ['| | |', '|xxxxxxxx|'] self.checkDetermineEditLists(separatorChars, before, edit, after) def test_deleteShrinkingSeparatorRow(self): # Shrinking not limited by size of separator cell separatorChars = ' -' before = ['|abcd|', '|----|'] edit = (0, ' d ') after = ['|acd|', '|---|'] self.checkDetermineEditLists(separatorChars, before, edit, after) # Shrinking limited by size of separator cell separatorChars = ' -' before = ['|abc|', '|---|'] edit = (0, ' d ') after = ['|ac |', '|---|'] self.checkDetermineEditLists(separatorChars, before, edit, after) # Shrinking not limited by size of separator cell with alignment markers separatorChars = ' -' before = ['|abcd|', '|:--:|'] edit = (0, ' d ') after = ['|acd|', '|:-:|'] self.checkDetermineEditLists(separatorChars, before, edit, after) # Shrinking limited by size of separator cell with alignment markers separatorChars = ' -' before = ['|abc|', '|:-:|'] edit = (0, ' d ') after = ['|ac |', '|:-:|'] self.checkDetermineEditLists(separatorChars, before, edit, after) # Shrinking partially limited by size of separator cell with alignment markers separatorChars = ' -' before = ['|abcde|', '|:---:|'] edit = (0, ' dddd') after = ['|a |', '|:-:|'] self.checkDetermineEditLists(separatorChars, before, edit, after) if __name__ == '__main__': unittest.main() ReText-5.3.1/tests/test_editor.py0000644000175000017500000000547112701272775017657 0ustar dmitrydmitry00000000000000# This file is part of ReText # Copyright: 2014 Dmitry Shachnev # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . import unittest from ReText.editor import documentIndentMore, documentIndentLess from PyQt5.QtGui import QTextCursor, QTextDocument class SettingsMock: tabWidth = 4 tabInsertsSpaces = True class TestIndentation(unittest.TestCase): def setUp(self): self.document = QTextDocument() self.document.setPlainText('foo\nbar\nbaz') self.settings = SettingsMock() def test_indentMore(self): cursor = QTextCursor(self.document) cursor.setPosition(4) documentIndentMore(self.document, cursor, self.settings) self.assertEqual('foo\n bar\nbaz', self.document.toPlainText()) cursor.setPosition(3) documentIndentMore(self.document, cursor, self.settings) self.assertEqual('foo \n bar\nbaz', self.document.toPlainText()) def test_indentMoreWithTabs(self): cursor = QTextCursor(self.document) self.settings.tabInsertsSpaces = False documentIndentMore(self.document, cursor, self.settings) self.assertEqual('\tfoo\nbar\nbaz', self.document.toPlainText()) def test_indentMoreWithSelection(self): cursor = QTextCursor(self.document) cursor.setPosition(1) cursor.setPosition(6, QTextCursor.KeepAnchor) self.assertEqual('oo\u2029ba', # \u2029 is paragraph separator cursor.selectedText()) documentIndentMore(self.document, cursor, self.settings) self.assertEqual(' foo\n bar\nbaz', self.document.toPlainText()) def test_indentLess(self): self.document.setPlainText(' foo') cursor = QTextCursor(self.document) cursor.setPosition(10) documentIndentLess(self.document, cursor, self.settings) self.assertEqual(' foo', self.document.toPlainText()) documentIndentLess(self.document, cursor, self.settings) self.assertEqual('foo', self.document.toPlainText()) def test_indentLessWithSelection(self): self.document.setPlainText(' foo\n bar\nbaz') cursor = QTextCursor(self.document) cursor.setPosition(5) cursor.setPosition(11, QTextCursor.KeepAnchor) documentIndentLess(self.document, cursor, self.settings) self.assertEqual('foo\nbar\nbaz', self.document.toPlainText()) if __name__ == '__main__': unittest.main() ReText-5.3.1/tests/test_settings.py0000644000175000017500000000654712701272775020236 0ustar dmitrydmitry00000000000000# This file is part of ReText # Copyright: 2014-2015 Dmitry Shachnev # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . import unittest import tempfile import sys from os.path import basename, dirname, splitext from PyQt5.QtCore import Qt, QCoreApplication, QSettings from PyQt5.QtGui import QColor, QFont from ReText import readListFromSettings, writeListToSettings, \ readFromSettings, writeToSettings from ReText.highlighter import colorScheme, updateColorScheme # Keep a reference so it is not garbage collected app = QCoreApplication(sys.argv) class TestSettings(unittest.TestCase): def setUp(self): self.tempFile = tempfile.NamedTemporaryFile(prefix='retext-', suffix='.ini') baseName = splitext(basename(self.tempFile.name))[0] QSettings.setPath(QSettings.IniFormat, QSettings.UserScope, dirname(self.tempFile.name)) self.settings = QSettings(QSettings.IniFormat, QSettings.UserScope, baseName) def tearDown(self): del self.settings # this should be deleted before tempFile def test_storingLists(self): data = ( ['1', '2', '3', 'test'], [], ['1'], ['true'], ['foo, bar', 'foo, bar'] ) for l in data: writeListToSettings('testList', l, self.settings) lnew = readListFromSettings('testList', self.settings) self.assertListEqual(lnew, l) def test_storingBooleans(self): writeToSettings('testBool', 1, None, self.settings) self.assertTrue(readFromSettings('testBool', bool, self.settings)) writeToSettings('testBool', 'false', None, self.settings) self.assertFalse(readFromSettings('testBool', bool, self.settings)) writeToSettings('testBool', 0, None, self.settings) self.assertFalse(readFromSettings('testBool', bool, self.settings)) def test_storingFonts(self): font = QFont() font.setFamily('my family') font.setPointSize(20) writeToSettings('testFont', font, None, self.settings) family = readFromSettings('testFont', str, self.settings) size = readFromSettings('testFontSize', int, self.settings) self.assertEqual(family, 'my family') self.assertEqual(size, 20) newFont = readFromSettings('testFont', QFont, self.settings, QFont()) self.assertEqual(newFont.family(), family) self.assertEqual(newFont.pointSize(), size) def test_storingColors(self): self.settings.setValue('ColorScheme/htmlTags', 'green') self.settings.setValue('ColorScheme/htmlSymbols', '#ff8800') self.settings.setValue('ColorScheme/htmlComments', '#abc') updateColorScheme(self.settings) self.assertEqual(colorScheme['htmlTags'], QColor(0x00, 0x80, 0x00)) self.assertEqual(colorScheme['htmlSymbols'], QColor(0xff, 0x88, 0x00)) self.assertEqual(colorScheme['htmlStrings'], Qt.darkYellow) # default self.assertEqual(colorScheme['htmlComments'], QColor(0xaa, 0xbb, 0xcc)) if __name__ == '__main__': unittest.main() ReText-5.3.1/setup.py0000755000175000017500000000756412701277305015332 0ustar dmitrydmitry00000000000000#!/usr/bin/env python3 VERSION = '5.3.1' long_description = '''\ ReText is simple text editor that supports Markdown and reStructuredText markup languages. It is written in Python using PyQt libraries. It supports live preview, tabs, math formulas, export to various formats including PDF and HTML. For more details, please go to the `home page`_ or to the `wiki`_. .. _`home page`: https://github.com/retext-project/retext .. _`wiki`: https://github.com/retext-project/retext/wiki''' requires = ['docutils', 'Markdown', 'Markups', 'pyenchant', 'Pygments'] import re import sys from os.path import join from distutils import log from distutils.core import setup, Command from distutils.command.build import build from distutils.command.sdist import sdist from distutils.command.install_scripts import install_scripts from distutils.command.upload import upload from subprocess import check_call from glob import glob, iglob from warnings import filterwarnings if sys.version_info[0] < 3: sys.exit('Error: Python 3.x is required.') def build_translations(): print('running build_translations') error = None for ts_file in glob(join('locale', '*.ts')): try: check_call(('lrelease', ts_file), env={'QT_SELECT': '5'}) except Exception as e: error = e if error: print('Failed to build translations:', error) class retext_build(build): def run(self): build.run(self) if not glob(join('locale', '*.qm')): build_translations() class retext_sdist(sdist): def run(self): build_translations() sdist.run(self) class retext_install_scripts(install_scripts): def run(self): import shutil install_scripts.run(self) for file in self.get_outputs(): log.info('renaming %s to %s', file, file[:-3]) shutil.move(file, file[:-3]) class retext_test(Command): user_options = [] def initialize_options(self): pass def finalize_options(self): pass def run(self): from tests import main testprogram = main(module=None, argv=sys.argv[:1], verbosity=2, exit=False) if not testprogram.result.wasSuccessful(): sys.exit(1) class retext_upload(upload): def run(self): self.sign = True self.identity = '0x2f1c8ae0' upload.run(self) for command, pyversion, filename in self.distribution.dist_files: full_version = re.search(r'ReText-([\d\.]+)\.tar\.gz', filename).group(1) new_path = ('mandriver@frs.sourceforge.net:/home/frs/project/r/re/retext/ReText-%s/' % full_version[:-2]) args = ['scp', filename, filename + '.asc', new_path] print('calling process', args) check_call(args) if '--no-rename' in sys.argv: retext_install_scripts = install_scripts sys.argv.remove('--no-rename') filterwarnings('ignore', "Unknown distribution option: 'install_requires'") classifiers = [ 'Development Status :: 5 - Production/Stable', 'Environment :: X11 Applications :: Qt', 'License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)', 'Programming Language :: Python :: 3 :: Only', 'Topic :: Text Editors', 'Topic :: Text Processing :: Markup' ] setup(name='ReText', version=VERSION, description='Simple editor for Markdown and reStructuredText', long_description=long_description, author='Dmitry Shachnev', author_email='mitya57@gmail.com', url='https://github.com/retext-project/retext', packages=['ReText'], scripts=['retext.py'], data_files=[ ('share/appdata', ['data/me.mitya57.ReText.appdata.xml']), ('share/applications', ['data/me.mitya57.ReText.desktop']), ('share/retext/icons', glob('icons/*')), ('share/retext/locale', iglob('locale/*.qm')) ], requires=requires, install_requires=requires, cmdclass={ 'build': retext_build, 'sdist': retext_sdist, 'install_scripts': retext_install_scripts, 'test': retext_test, 'upload': retext_upload }, classifiers=classifiers, license='GPL 2+' ) ReText-5.3.1/icons/0000755000175000017500000000000012701277415014716 5ustar dmitrydmitry00000000000000ReText-5.3.1/icons/retext.svg0000644000175000017500000006132212556404212016751 0ustar dmitrydmitry00000000000000 ReText-5.3.1/icons/retext.png0000644000175000017500000004467712556404212016754 0ustar dmitrydmitry00000000000000PNG  IHDR\rfsBIT|d IDATxy|U[IB ayX]@ 62#˸3(8*Jt aAFxF ;. IHBNY{}KUwUϧ:}ԭ{=w;`0 }p^WpHI=%=y4ssyϽy.:J" -T`rcr> 됴$O8ϓH| '4?䘖C*S0R\wC_D @ߋW 7F0z#<2ʁ|! !Ox!_1zdinxD6ee%%%\J':e9KS[O^|"=m?nƍ&\.ZntV<_>c$'֏[@雠dF:bPڍ۰a#FLLLh4vFݺu[Q4y>ݻs/U_/Fux@׿_eddQml6PB^Wu ݺuk2Ֆ=2E !W^ʋ%%% I @z8SNF-b*)#c)G^0nܸ{wgggPINxp=(r+f |AfO>dLyyΩSnLIIj43ܣ G*?*EF %<ϓn2OCB\讟 M€ɯ@rxMmmm$3|xѢE{ Ν;$u³gA!r n ęq3\s5kN~||@OaI?=ED]55j!UXp84WUUх-jkk5JޜD)VTT$=EZ)))x]GyҡAPA?Hߊ^\?im)))ce\/];@d,uɢwU*\iA,-4Qުt:-?dѐZO^!hllT5/834hKСC ]" `/H:z4Sx/G111J" {]rpi?"&ta^ѱc1gΜGjjjր"mB @d>?YfΟ?^LHDJUUU?$E7AyyyܴEEEUNgXӱ!ҼXȪTϋ˗/-))*/ ɔ r) ^N#!!~yΝWA#d51EyHHGۉ0L&ohyn;Tk1r-pk<)ů,Z=t:]͜~qݚ%yvION^'ѱc_|Aq\p:ZTbf2ލ5X;祗^ ߴ4'tZ  Ѝ1"O>Iy^ ;f4R83xJ^GFh@zWXG^/_|N:uD߿tuQSSS}ϯػwoaQQQ2<rٝȜjEuu}Ϟ=ȕo/...V;/;vFv+wv }"4[>ٓ_VVVI}yq1LJJ=Ռxlv^@^iѣD|bѡcֺmK,I^k&##cqo@H"p 96-Z4+33R_SSSs9ar66=Dn"Cv;6nw+11 }|b6\e M/ +t#Fl5555SLǁl !/TwHr:vn?~ŷ3f?^XLS푃qA(?Wn^)S6wBi@zZwn7n޼ow$y!ok@m}#n@(oTy^4Uh0bs:ng 5P&2={ز{EI^<$/j|9z6·$푩@tы%P)|>ED =oW Ay~7oᆔ=z.|Ƽ庸aÆSM9BL~W%U: Ǐ_ekI!h_%.@iNNNŧ~\n'\T_kLvjT8 49svWWW!#GXbiO{; <3- =5p1?zq>E;JR)̙Ka^1k i.|{d< >]޿ƍ͋sYhO9Mz&Cm": |]KO+>tCEY+ oB>_K>!*{Ѡ 2/O[:×_~y/@˧MZ5 7n+G3G#~KO;(U᫯ ҝXب֟F5zґY `˗+6mڴO pWr/;)g !^/7/>!~r]!V}Ѵŕ:-ͯ,92#͋J >}_:\U8JӰd@X{9*uoV@z رcAx645e ]Ј7iZBK[n 9wPf͚ x/O6mzf6I@dpܹsyyy# #搊/t|J裏8EC 6pv[ZxdXA \~i݇bT~"j!Vy]v %d J~NIHf:uŋÚ"}V^jީҫaϞ=U>TMEףiA}gC-),,(ӧO穵8@Sv~H+ıZ? zm^yDHբGZMl**=էQHM?j=VPP3|_̤ }LD!pt Lrp eee,!m1;R3ܷ8 OB%-8QROhus(--o<䃴%U:g(]&K%%%dzW5xK{ifm6%2&t#H_P҃RNU A$:/GZp}LWJ߇.Ffh >&D>@򢡡iGz |_i LWZŧ$ PZZZ->.>DyyH6p8zyE.\ZA!9[DID Mj222QCt,r^oĉ׆ddgg_GG{xU"9]gI]vL={4@̌])]8jԨԑ#G%Wn IQ%1Sfo{y111)rHKKҥKf!لO,E~oAQ?BK\[]իWc4ʑ1~ɒ%kN7ލj;wnR޽+q'xR.Iʕ+j֣pW;(.qsѢE=!NH58oq|t]v5]vYlll&w Bbb'ŅGB.|䈃bt1(q_c AQIKC"rпw-qڵo EB߿|^eȇ@F's-[&_q=t;5K ].뮻._i^c7|uR3Nǥy_Ν;k{AzZ|`0z衷|A2-b8 =8*=f`NIIر/~"33sC訶Ҹk@%t4@«:`e2R,X{c.BD(ҽӭ;wbJ п?lݺu &7y^ڬZ1cڵF2̋%K,3fL$ s~)#}Ϟ= 7n|%..nR`Ȑ!ߺuWV,# -clܸqȐ!C^Gַڴ !111^yГV8[=x7.ѣ+333D +x̙3 fTc=ѕO3gZ9pի r}3EZm&TE;:rrrrN_M)))ccc5 Nujnn].T66؈zԠN[quQTTDA}A޽ѧOݻw2~⩛AZ LYYxٌM_c0:) 8044QӡQG-Z{ + QRR۷O`@nлwodffbذa6l˺fLIgG==ص'vUMt"//yyyuʀ|Z4`:1+#lURYY]va׮]^Çcܸq?~< ъ`TyQ,rt:R2vrw^C|x1mZ2`._lV޽wMΝ1i$,^wO?7|&MBBB*--C=S!E ͐ rXmmF#t!-- 3g?9s[l?4_c̘1Uf{G.@b|ЫňɄ#Gbɒ%8y$lقӧl6G|R~xob&uuT>WPc-a+AaȑXj;^xz<7ߏZ&Px6*++EUVhZIZZ}Q8pVB>}";5|ODKBtoA}Zx0Rz=OwA߾}þVNNMƔ (dz %6V}ngEE]vm pwow$&|6mv{?SkE`2X2rP -ZRt:^`ԩa]c5kl޳.J -.NkY,il~o 5k`Æ P|7|ŋk Y% ޖ_Ʌ z Umֺίk۷'NT|[oO?T?P P{@ k׮+b裏*~'|I~a @%h`UyKkUړ^+WTة śP`.S*A+-t[] ӦMڵka4esqZJCa)6Zī\-ZzX|"K^8<[[oȣs.iӦ/X|~P <˽cTP!f~֭[>bǎү]Uݕ\0 @p)!Q8@qVX!2c'b"]:TܭVIHLL8|IIIx뭷dOp%AlЕ3}11HR1(x׮]Un[$++ wqسg}XnBUhlm@sSO`7tk,Mۇ)g:=z[nvK:Q{/#HQyj{w{t)B0U<M2 @`ĈHNNXV:,Pq@Nz0^ǵ^++c4v`fV *h3qSC ~XV:J@n;Sqlsrr2hG(**bv;#7dx4) Mbu"ԌPdRGsA˷~++]ffƒ>KfVjIzz:L*ocSciZ%X3"m(*-$ C`޽u8\{QwMfDhﵡLiq6(tGΝ5mC\1D@^Z86#77;wv̘1K:,0HRJP1Q3o;Vci> !@*p.S?#>CYi322Dm"vkdB )!,X <(P@TVVz NEw& \-n:9rDVڸ8̚5KcZ/lm둤R@;K.Qߒ۷>3f̈ Ja UhWnmL&̝;WcZ7JV*Z 4"w * JDk^GQQs}Ѩ3)^`6m:$}bJPl0|P"%{qw+!;;FcUn* eQ< ^!7c̙*?}ݸ4MBU'8(C.ǣZOMр:ѣGBvvFRoXdb@EBwlFJJJWn|'; @JJ VZLȪl .ZhW]vbֈf7lذAF.t颁dm%]t"@H*/<㥗^¶mo0rJL<]博nV2Go/@yy9VXkrшe˖a*JQ"i]&Ը^<*][,])))Xz5!@ :V4^}-QbmÖ-[~z|\ꫯڵk? `]0-Ը8Z.xMLLDbbbl{nlݺ`ܙE̙3/3H(f)XU@5U[{_VVc۶mWzX,x0c U,0b@k^TToӧ57ozU}8BK)ݎ\>}Oƙ3gp ={V{'''cŸ5W{lh 5Q ={:uBJJ Ҽ)))0^GBBBYYJKKQTTR\|(**ӧqEF>1110o:x{c0uTĵlE( _Wi@e;߹sgr-1tЖnd@)HTA!P%ٳ'&N'ꫯnLLmtJHQ}T+؜f :ÇDŽ 0`(j@@JN\wuBVV*拯ö( B)cǎ۷/郾}z3331GҭnF( >vƢV馛p!ԩeK.@jj*ӑN:!55ի:t}Z$"Zp_؈[?ơCTSW^y%^uXVUh}D2IoraP@*xzz:  Oӧ#??| ># ۷ɓxѷoHEg"MNr,*CjQkٳ'~iL! Sp0͸o>Z*UUU9sfX9%{B(&Pa `0`ʔ)ؽ{7ѩSp8?ovX3Z5|p8EсmaDUϯ+qb00k,|ט5kVX+xǢEl22Z'*BhߨӡC95dZ-[+KW_}oFX2.@4D@f$F8x).u]/:?;;qgSf(LX2r;ok2bbb+߆ŢYx'sΈd`Rl @ {kp- i Hcʕ3f{1?^#-"1NgD׺dZJUX}Nuu5?)fh9'f(v itE9ի50>K7hiҰn:fP*Fsz ]j3h Ex駵؀ qqH09]HΜ9/Yك-[nX2F ࢱHI+*3xuA^yԫ )|{`]qȧ܉7jŊ+dCp/_T)]tk5:t(WZR-XC/>"P… eO :+KPuY 0=.;XxX,v! _|X%eY2Uf,)!33Sv(W\I&NtR a(EQpPߓk/DPimTu'DLP_|D kMP3Vz @k.?0RSSe---/Dщ,HD xx<#oذGP"fps0TpMٳqWJv㏣e4?L6kz=[7qbE&xT9 ۛx j(#:=!%%%HNNFee%N'<~o:`dɱ`2j0x-xaǏرck.Y/_ǣo߾KUP,2h Xҽ{w,@ x\56L-m P8*j# xᇱuV-B`kT-܂'bĈfT^ChRۖ;d2jzddzqp:(//Mׯ_?oafΜM6ᅲǨQd{fAZZd@cc#v;l6l6P[[:xӤgTր^ǫ*xGpi%c0 zɗ?=?~| ~aܹ`ܹ|&0%:Jb跱믽'L\mG}TQ'// .T!FXw)h4zZVdee*[k'66o̔7Pl߾_4A` @!//{|M797jЧO,X@91 2pflN(ZHII_tIyFQE'G>3F9/ƦM4]#ۥ_Xm=@FF̙3bxz О8on ,G}dHwr$@Ϟ=uuu.\_{h$>>o&8Vy߰m6 %kȪJ}rѶ,wPN?^aSL< D~/NCuu5OmpI=rf({n40yd<䓊q\xꩧOAh(ZݻX&B~+$&&j"W[eܹ6m~m#p aƍæMr5\)(Ξ=;jABB֭[ ^IDAT'u~EE,Xٳgܹs*Kצ' 4 ..wuWTS$F,_)))"/JJطo&L;v[n*KQP 4H8KEDzevz7GeW"l0j1 Sł|$jL2֭CǎgZ3h$U"Vt]Qoې. .d+Tg}>g…"/Nц&uV[ 8p n怿33fhF?شi瞐wСlUXhH{ҥKق s=>:u`0ॗ^rG FRSS駟o^^m݆O?hi-[`M~1c 1; N(޽;QIzz:VZ<38{,l焪Fl@6U> 2d[Z6"vz!E`eR{-z6`D':?Aa# F끮n6i (^?LL0l%(`1S F끮r d n`0Z§_~v.@ 59r9؍ F"r/"ǁ رcGdY F "yyyeeeN=IH7'Nt:_ꫯ.DiK[ A)X"3}P[[8a„.D[N킓zW]]?xCCC'%u*;__ϊ% 8zY F3@W~7NWR?7P$[iH)?.>Oұ@ m :vҥ|@=PsXV.@() СC>qL 0*BZ@mN> Yg!$q:a\ AkzNH|yҥ\~,#GOh^6)BxpSrN89)9O=NyrJvK߯["|-9; X__(@FFq5T]N;ܹC ILLL4zH 9S)<8PP:œP|R8 jkk]UUU.?? ӣQZ"l|}*UzJB0AP'A03. F4@E/ޫp>K@1|ʁ6c  (RMZy='A0na03Q1}|7^_e|oK DB@)ua+|`?5`O%{}WЂ?#֜"9 a `O- ^߼>k٫ѕZYx3HdH,$<%eϒ0!g0Ch!Tv;5*?=&PaQbZ p/&iX0 !T|h;c5;iiX+=? m  #|Lz]\B V f?yb#%@Oh_O}2`0| Qi,  Bu <!TzW$0 t*|%?S FxA'߈Bŗ D` H-t7N'!Z/_&Z#X }B͖Z}C}%? {e%5PX:H+`0QnO8ԾU]@IENDB`ReText-5.3.1/README.md0000644000175000017500000000347412701272775015076 0ustar dmitrydmitry00000000000000Welcome to ReText! ================== ReText is a simple but powerful editor for Markdown and reStructuredText markup languages. ReText is written in Python language and works on Linux and other POSIX-compatible platforms. To install ReText, use `setup.py install` command. ![ReText under KDE 5](https://a.fsdn.com/con/app/proj/retext/screenshots/retext-kde5.png) You can read more about ReText in the [wiki]. ReText requires the following packages to run: * [python](https://www.python.org/) — version 3.2 or higher * [pyqt5](http://www.riverbankcomputing.co.uk/software/pyqt/intro) * [python-markups](https://pypi.python.org/pypi/Markups) We also recommend having these packages installed: * [python-markdown](https://pypi.python.org/pypi/Markdown) — for Markdown language support * [python-docutils](https://pypi.python.org/pypi/docutils) — for reStructuredText language support * [python-enchant](https://pypi.python.org/pypi/pyenchant) — for spell checking support The latest stable version of ReText can be downloaded from [PyPI]. You can also use `pip install ReText` command to install it from there. Translation files are already compiled for release tarballs and will be automatically loaded. For development snapshots, compile translations using `lrelease locale/*.ts` command. Translation files can also be loaded from `/usr/share/retext/` directory. You can translate ReText into your language on [Transifex]. ReText is Copyright 2011–2015 [Dmitry Shachnev](https://mitya57.me) and is licensed under GNU GPL (v2+) license, the current version is available in `LICENSE_GPL` file. ReText icon is based on `accessories-text-editor` icon from the Faenza theme. [wiki]: https://github.com/retext-project/retext/wiki [PyPI]: https://pypi.python.org/pypi/ReText [Transifex]: https://www.transifex.com/mitya57/ReText/