diff --git a/.github/workflows/syntax.yml b/.github/workflows/syntax.yml
index 560dd7dc..68eac6bc 100644
--- a/.github/workflows/syntax.yml
+++ b/.github/workflows/syntax.yml
@@ -4,9 +4,11 @@ on:
push:
branches:
- main
+ - patch
pull_request:
branches:
- main
+ - patch
jobs:
checkSyntax:
@@ -27,5 +29,5 @@ jobs:
flake8 tests --count --select=E9,F63,F7,F82 --show-source --statistics
- name: Coding Style Violations
run: |
- flake8 novelwriter --count --max-line-length=99 --ignore E221,E226,E228,E241 --show-source --statistics
- flake8 tests --count --max-line-length=99 --ignore E221,E226,E228,E241 --show-source --statistics
+ flake8 novelwriter --count --max-line-length=99 --ignore E133,E221,E226,E228,E241,W503 --show-source --statistics
+ flake8 tests --count --max-line-length=99 --ignore E133,E221,E226,E228,E241,W503 --show-source --statistics
diff --git a/.github/workflows/test_linux.yml b/.github/workflows/test_linux.yml
index 5699d8a8..ad331896 100644
--- a/.github/workflows/test_linux.yml
+++ b/.github/workflows/test_linux.yml
@@ -4,15 +4,17 @@ on:
push:
branches:
- main
+ - patch
pull_request:
branches:
- main
+ - patch
jobs:
testLinux:
strategy:
matrix:
- python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"]
+ python-version: ["3.7", "3.8", "3.9", "3.10"]
runs-on: ubuntu-latest
steps:
- name: Python Setup
diff --git a/.github/workflows/test_mac.yml b/.github/workflows/test_mac.yml
index c9b4497c..ccb1c0c1 100644
--- a/.github/workflows/test_mac.yml
+++ b/.github/workflows/test_mac.yml
@@ -4,9 +4,11 @@ on:
push:
branches:
- main
+ - patch
pull_request:
branches:
- main
+ - patch
jobs:
testMac:
@@ -15,7 +17,7 @@ jobs:
- name: Python Setup
uses: actions/setup-python@v2
with:
- python-version: 3.9
+ python-version: "3.10"
architecture: x64
- name: Install Packages
run: |
diff --git a/.github/workflows/test_win.yml b/.github/workflows/test_win.yml
index 85a0fda6..a976026a 100644
--- a/.github/workflows/test_win.yml
+++ b/.github/workflows/test_win.yml
@@ -4,9 +4,11 @@ on:
push:
branches:
- main
+ - patch
pull_request:
branches:
- main
+ - patch
jobs:
testWin:
@@ -15,7 +17,7 @@ jobs:
- name: Python Setup
uses: actions/setup-python@v2
with:
- python-version: 3.9
+ python-version: "3.10"
architecture: x64
- name: Checkout Source
uses: actions/checkout@v2
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2cd954b8..00509e4e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,130 @@
# novelWriter Changelog
+## Version 1.6.2 [2022-03-20]
+
+### Release Notes
+
+This is a bugfix release that fixes a couple of minor issues. Projects containing one or more empty
+documents would trigger a rebuild of the index each time the project was opened. This has now been
+fixed. Another fix resolves an error message being written to the console logging output when a new
+document was created. Both errors were harmless.
+
+### Detailed Changelog
+
+**Bugfixes**
+
+* Fixed an issue where projects containing empty documents would trigger an index rebuild on open,
+ but the empty document would be skipped due to a check that skips empty documents. As a
+ consequence, the index would be rebuilt each time the project was opened. Empty documents are now
+ added to the index, resolving this issue. Issue #1020. PR #1022.
+* Fixed an issue where the shasum calculation would be performed when a new document was created,
+ which would fail as the file did not yet exist. The error was handled, but an error message was
+ printed to the console log. The shasum is now no longer called if the file doesn't already exist.
+ Issue #1021. PR #1023.
+
+----
+
+## Version 1.6.1 [2022-03-16]
+
+### Release Notes
+
+This is a bugfix and patch release that fixes two recursion/loop issues. One would potentially
+cause a crash if the window was resized rapidly, and one would cause a hang with certain search
+parameters in the editor's search box. The Latin American Spanish translation has also been
+updated.
+
+### Detailed Changelog
+
+**Installation**
+
+* When using the new installer on Windows, the project file mime type icon path would not be
+ correctly configured in registry. The correct path is now used. PR #1006.
+
+**Internationalisation**
+
+* The Latin American Spanish translation has been updated with two missing translation strings.
+ PR #1017.
+
+**Bugfixes**
+
+* Fix a bug where rapidly resizing the main window could trigger the recursion detector in Python
+ if done on a slower system. The actual issue may be a race condition or similar, and the change
+ made at least makes it harder to trigger. PR #1007.
+* With some document searches, it was possible to trigger an infinite loop in the function that
+ counts results. It seems to be caused by the QTextEdit widget's find function returning a
+ successful result status, but no actual result selection. The fix will now write a warning to the
+ log and exit in such cases. The number of results is also now capped at 1000. Issue #1015.
+ PR #1016.
+
+----
+
+## Version 1.6 [2022-02-20]
+
+### Release Notes
+
+This release does not introduce any major new features, but is instead a collection of minor
+improvements and tweaks based on user requests. There are also a number of changes under the hood
+to improve the structure and performance of novelWriter.
+
+Some key improvements to the user interface are:
+
+* The max text width setting in Preferences now also applies to the document viewer, and the
+ setting itself on the Preference dialog has been simplified a bit.
+* When text is selected in the document editor, the number of words selected is displayed in the
+ editor's footer area.
+* The search tool in the document editor now shows the number of results in the document.
+* The Enter and Ctrl+O keyboard shortcuts should now work the same way in all tree views.
+* It is now possible to set a blank section title format on the Build Novel Project tool and get
+ empty paragraphs in the output. Previously, a blank format would just remove the section break
+ entirely. This change allows the user to define hard and soft scene breaks using level three and
+ four headings. The scene and section titles can be hidden completely with two new switches added
+ to the user interface.
+
+Other feature changes include:
+
+* The project index is now automatically rebuilt in the event it is empty or incomplete when the
+ project is opened.
+* The user can now add their own syntax and GUI theme files in the app folder in their user area on
+ the host operating system. Where the custom files must be added is described in the
+ documentation.
+* A Windows installer is yet again provided for novelWriter. If you have novelWriter installed
+ using another method, make sure you uninstall it properly first as the two methods are not
+ compatible.
+* Release versions for Ubuntu 21.04 have been dropped, and added for the upcoming Ubuntu 22.04.
+* Most translations have been updated. A Dutch translation is in the works.
+
+In addition to these changes, the documentation has been completely restructured and a new theme
+added. The theme has a light and a dark mode.
+
+_These Release Notes also include the changes from 1.6 Beta 1 and RC 1._
+
+### Detailed Changelog
+
+**User Interface**
+
+* The default OS font is not always suitable for editing documents. The default editor font is now
+ Arial on Windows and Courier on macOS; if those fonts are available on the platform. Issue #988.
+ PR #990.
+* Added some some random error messages from Discworld to the error dialog shown when novelWriter
+ crashes. They are visible on the dialog title bar if the title bar is visible on the platform.
+ This is just a fun addition made to note the #1000 addition to novelWriter. PR #1000.
+
+**Installation**
+
+* Dropped the Ubuntu 21.04 release as it is now deprecated, and added a release package for the
+ upcoming Ubuntu 22.04. PR #987.
+
+**Internationalisation**
+
+* The French, Norwegian and Portuguese (Brazil) translations have been updated. #992.
+
+**Documentation**
+
+* Some minor improvements have been made to the Introduction section of the documentations.
+ PR #991.
+
+----
+
## Version 1.6 RC 1 [2022-02-06]
### Release Notes
@@ -97,7 +222,7 @@ final release.
* Custom GUI themes and syntax themes can now be loaded from the user's data path. The actual
storage path is determined by the OS. Part of Feature Request #892. PR #893.
* A number of text messages and labels on the GUI have been improved. Issue #923. PR #926.
-* The switch in Preferences to disbale fixed width text in the editor has been removed. Instead,
+* The switch in Preferences to disable fixed width text in the editor has been removed. Instead,
the user just sets the fixed with setting to 0 to disable it. The settings is now also applied to
the document viewer as well. Issue #924. PR #943.
* The Open Document export file produced from the build tool is now more LibreOffice and OpenOffice
diff --git a/CREDITS.md b/CREDITS.md
index 994768ac..e770434f 100644
--- a/CREDITS.md
+++ b/CREDITS.md
@@ -16,6 +16,7 @@
* Portuguese: Bruno Meneguello (@bkmeneguello)
* Simplified Chinese: Qianzhi Long (@longqzh)
* Latin American Spanish: Tommy Marplatt (@tmarplatt)
+* Dutch: Martijn van der Kleijn (@mvdkleijn)
## Libraries
diff --git a/README.md b/README.md
index 36aa11d2..60ca008b 100644
--- a/README.md
+++ b/README.md
@@ -31,9 +31,9 @@ The full credits are listed in
## Implementation
-The application is written in Python 3 (3.6+) using Qt5 and PyQt5 (5.3+). It is developed on Linux,
-but should in principle work fine on other operating systems as well as long as dependencies are
-met. It is regularly tested on Debian and Ubuntu Linux, Windows, and macOS.
+The application is written with Python 3 (3.7+) using Qt5 and PyQt5 (5.3+). It is developed on
+Linux, but should in principle work fine on other operating systems as well as long as dependencies
+are met. It is regularly tested on Debian and Ubuntu Linux, Windows, and macOS.
## Installation
diff --git a/docs/source/conf.py b/docs/source/conf.py
index a47d4627..b8dbf3f6 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -55,7 +55,7 @@ html_theme_options = {
"light_logo": "novelwriter-light.png",
"dark_logo": "novelwriter-dark.png",
}
-html_title = f"
Documentation Version {release}
"
+html_title = f"
Documentation Version {release}
"
# -- Options for HTMLHelp Output ---------------------------------------------
diff --git a/docs/source/int_started.rst b/docs/source/int_started.rst
index f398a8b6..5b5fff70 100644
--- a/docs/source/int_started.rst
+++ b/docs/source/int_started.rst
@@ -115,7 +115,7 @@ Windows
-------
First, make sure you have Python installed on your system. If you don't, you can download it from
-`python.org`_. Python 3.6 or higher is required, but it is recommended that you install the latest
+`python.org`_. Python 3.7 or higher is required, but it is recommended that you install the latest
version.
Make sure you select the "Add Python to PATH" option during installation, otherwise the ``python``
diff --git a/docs/source/usage_projectformat.rst b/docs/source/usage_projectformat.rst
index ea0b55b5..6a7c4c8b 100644
--- a/docs/source/usage_projectformat.rst
+++ b/docs/source/usage_projectformat.rst
@@ -11,13 +11,32 @@ changes require minor actions from the user.
The key changes in the formats are listed below, as well as the user actions required where
applicable.
+.. caution::
+
+ When you update a project from one format version to the next, the project can no longer be
+ opened by a version of novelWriter prior to the version where the new file format was
+ introduced. You will get a notification about any updates to your project file format and will
+ have the option to decline the upgrade.
+
+
+.. _a_prjfmt_1_4:
+
+Format 1.4 Changes
+==================
+
+This project format was introduced in novelWriter version 1.7.
+
+This format changes the way project items (folders, documents and notes) are stored. It is a more
+compact format that is simpler and faster to parse, and easier to extend. The conversion is done
+automatically the first time a project is loaded. No user action is required.
+
.. _a_prjfmt_1_3:
Format 1.3 Changes
==================
-This project format vas introduces in novelWriter version 1.5.
+This project format was introduced in novelWriter version 1.5.
With this format, the number of document layouts was reduced from 8 to 2. The conversion of
document layouts is performed automatically when the project is opened.
@@ -55,7 +74,7 @@ should be used only a few places in any given project. These are as follows:
Format 1.2 Changes
==================
-This project format was introduces in novelWriter version 0.10.
+This project format was introduced in novelWriter version 0.10.
With this format, the way auto-replace entries were stored in the main project XML file changed.
Opening an old project automatically converts the storage format up to and including version 1.1.1.
@@ -69,7 +88,7 @@ auto-replace is not being used, can still be opened in novelWriter as of version
Format 1.1 Changes
==================
-This project format was introduces in novelWriter version 0.7.
+This project format was introduced in novelWriter version 0.7.
With this format, the ``content`` folder was introduced in the project storage. Previously, all
novelWriter documents were saved in a series of folders numbered from ``data_0`` to ``data_f``.
diff --git a/i18n/nw_es_419.ts b/i18n/nw_es_419.ts
index 0c76fdcb..e465c54f 100644
--- a/i18n/nw_es_419.ts
+++ b/i18n/nw_es_419.ts
@@ -119,8 +119,9 @@
Objetos
+
- Entity
+ EntitiesEntidades
@@ -131,8 +132,8 @@
- Outtakes
- Material Descartado
+ Archive
+ Archivo
@@ -192,11 +193,6 @@
FocusFoco
-
-
- Entities
- Entidades
- Title
@@ -499,7 +495,7 @@
Leave blank to skip this heading, or set to a static text, like for instance '{0}', to make a separator. The separator will be centred automatically and only appear between sections of the same type.
- Leave blank to skip this heading, or set to a static text, like for instance '{0}', to make a separator. The separator will be centred automatically and only appear between sections of the same type.
+ Dejar en blanco para omitir este encabezado, o establecer un texto estático, como por ejemplo '{0}', para crear un separador. El separador se centrará automáticamente y sólo aparecerá entre las secciones del mismo tipo.
@@ -507,282 +503,277 @@
No establecido
-
+ TitleTítulo
-
+ ChapterCapítulo
-
+ UnnumberedSin numerar
-
+ SceneEscena
-
+ SectionSección
-
+ LanguageIdioma
-
+
+ Hide scene
+ Ocultar la escena
+
+
+
+ Hide section
+ Ocultar la sección
+
+
+ Font OptionsOpciones de tipografía
-
+ Font familyTipografía
-
+ Font sizeTamaño
-
+ Line heightAltura de línea
-
+ Justify textJustificar el texto
-
+ Disable stylingDesactivar los estilos
-
+ Styling OptionsOpciones de Estilo
-
+ Include OptionsOpciones de inclusión
-
+ Include synopsisIncluir sinopsis
-
+ Include commentsIncluir los comentarios
-
+ Include keywordsIncluir las palabras clave
-
+ Include body textIncluir el cuerpo del texto
-
+ File Filter OptionsOpciones de Filtrado de Archivos
-
- Include files with layouts other than 'Note'.
- Include files with layouts other than 'Note'.
-
-
-
- Include files with layout 'Note'.
- Include files with layout 'Note'.
-
-
-
- Ignore the 'Include when building project' setting and include all files in the output.
- Ignore the 'Include when building project' setting and include all files in the output.
-
-
-
+ Include novel filesIncluir archivos de la novela
-
+ Include note filesIncluir archivos de las notas
-
+ Ignore export flagOmitir la opción de exportado
-
+ Export OptionsOpciones de exportado
-
+ Replace tabs with spacesReemplazar tabulaciones por espacios
-
+ Replace Unicode in HTMLReemplazar el Unicode en HTML
-
+ Build PreviewVista Previa de la Novela
-
+ PrintImprimir
-
+ Print PreviewVista Previa de Impresión
-
+ Print to PDFImprimir a PDF
-
+ Save AsGuardar Como
-
+ Open Document (.odt)Open Document (.odt)
-
+ Flat Open Document (.fodt)Flat Open Document (.fodt)
-
+ novelWriter HTML (.htm)HTML de novelWriter (.htm)
-
+ novelWriter Markdown (.nwd)Markdown de novelWriter (.nwd)
-
+ Standard Markdown (.md)Markdown Estándar (.md)
-
+ GitHub Markdown (.md)Markdown de GitHub (.md)
-
+ JSON + novelWriter HTML (.json)JSON + HTML de novelWriter (.json)
-
+ JSON + novelWriter Markdown (.json)JSON + Markdown de novelWriter (.json)
-
+ CloseCerrar
-
+ Failed to generate preview. The result is too big.No se pudo generar la vista previa. El resultado es demasiado grande.
-
+ There were problems when building the project:Se hallaron problemas al compilar el proyecto:
-
+ Open DocumentOpen Document
-
+ Flat Open DocumentFlat Open Document
-
+ Plain HTMLHTML plano
-
+ novelWriter MarkdownMarkdown de novelWriter
-
+ Standard MarkdownMarkdown Estándar
-
+ GitHub MarkdownMarkdown de GitHub
-
+ JSON + novelWriter HTMLJSON + HTML de novelWriter
-
+ JSON + novelWriter MarkdownJSON + Markdown de novelWriter
-
+ PDFPDF
-
+ Save Document AsGuardar el Documento Como
-
+ {0} file successfully written to:El archivo {0} se ha guardado con éxito en:
-
+ Failed to write {0} file. {1}Hubo un fallo al escribir el archivo {0}. {1}
@@ -790,50 +781,50 @@
GuiBuildNovelDocView
-
+ This area will show the content of the document to be exported or printed. Press the "Build Preview" button to generate content.
- This area will show the content of the document to be exported or printed. Press the "Build Preview" button to generate content.
+ Esta área mostrará el contenido del documento a exportar o imprimir. Pulse el botón "Crear vista previa" para generar el contenido.
-
+ UnknownDesconocido
-
+ Build Time:
- Build Time:
+ Tiempo de Compilación:GuiDocEditFooter
-
+ StatusEstado
-
+ Line: {0} ({1})Línea: {0} ({1})
-
+ Words: {0} ({1})Palabras: {0} ({1})
-
+ Document size is {0} bytesEl tamaño del documento es de {0} bytes
-
+ Words: {0} selectedPalabras: {0} seleccionadas
-
+ Character count: {0}Total de caracteres: {0}
@@ -841,22 +832,22 @@
GuiDocEditHeader
-
+ Edit document metaEditar metadatos del documento
-
+ Search documentBuscar en el documento
-
+ Toggle Focus ModeAlternar el Modo Enfocado
-
+ Close the documentCerrar el documento
@@ -880,82 +871,42 @@
Sensibilidad a Mayúsculas y Minúsculas
-
- Match case
- Coincidir mayúsculas y minúsculas
-
-
-
+ Whole Words OnlySólo Palabras Enteras
-
- Match whole words
- Coincidir palabras enteras
-
-
-
+ RegEx ModeModo ExReg
-
- Search using regular expressions
- Buscar usando expresiones regulares
-
-
-
+ Loop SearchReiniciar la Búsqueda
-
- Loop the search when reaching the end
- Continuar la búsqueda desde el principio tras llegar al final
-
-
-
+ Search Next FileBuscar en el Siguiente Archivo
-
- Continue searching in the next file
- Continuar la búsqueda en el archivo siguiente
-
-
-
+ Preserve CaseConservar Mayúsculas y Minúsculas
-
- Preserve case on replace
- Al reemplazar, conservar mayúsculas y minúsculas
-
-
-
+ Close SearchCerrar la Búsqueda
-
- Close the search box [{0}]
- Cerrar el cuadro de búsqueda [{0}]
-
-
-
- Show/hide the replace text box
- Mostrar/ocultar el cuadro de reemplazado de texto
-
-
-
+ Find in current documentBuscar en el documento actual
-
+ Find and replace in current documentBuscar y reemplazar en el documento actual
@@ -985,7 +936,7 @@
This document has been changed outside of novelWriter while it was open. Overwrite the file on disk?
- This document has been changed outside of novelWriter while it was open. Overwrite the file on disk?
+ Este documento ha cambiado por fuera de novelWriter estando abierto. ¿Sobreescribir en el disco?
@@ -1286,7 +1237,7 @@
Could not find the reference for tag '{0}'. It either doesn't exist, or the index is out of date. The index can be updated from the Tools menu, or by pressing {1}.
- Could not find the reference for tag '{0}'. It either doesn't exist, or the index is out of date. The index can be updated from the Tools menu, or by pressing {1}.
+ No se pudo encontrar la referencia para la etiqueta '{0}'. O no existe, o se ha desactualizado el índice. Éste se puede actualizar desde el menú Herramientas, o presionando {1}.
@@ -1424,7 +1375,7 @@
- Cannot create new project when another project is open.
+ Cannot create a new project when another project is open.No se puede crear un nuevo proyecto mientras haya un proyecto abierto.
@@ -1448,7 +1399,7 @@
¿Cerrar el proyecto actual?
-
+ Changes are saved automatically.Los cambios se guardan automáticamente.
@@ -1466,7 +1417,7 @@
The project was locked by the computer '{0}' ({1} {2}), last active on {3}.
- The project was locked by the computer '{0}' ({1} {2}), last active on {3}.
+ El proyecto fue bloqueado por el equipo '{0}' ({1} {2}), por última vez activo el {3}.
@@ -1489,103 +1440,103 @@
El índice del proyecto está dañado o desactualizado. Recomponiendo el índice.
-
+ Text files ({0})Archivos de texto ({0})
-
+ Markdown files ({0})Archivos de Markdown ({0})
-
+ novelWriter files ({0})Archivos de novelWriter ({0})
-
+ All files ({0})Todos los archivos ({0})
-
+ Import FileImportar un Archivo
-
+ Could not read file. The file must be an existing text file.No se pudo leer el archivo. El archivo debe ser un archivo de texto existente.
-
+ Please open a document to import the text file into.Por favor abra un documento en el cual importar el archivo de texto.
-
+ Import DocumentImportar un Documento
-
+ Importing the file will overwrite the current content of the document. Do you want to proceed?El contenido actual del documento será sobrescrito al importar el archivo. ¿Desea continuar?
-
-
+
+ Indexing: '{0}'
- Indexing: '{0}'
+ Indexando: '{0}'
-
+ Unknown itemÍtem desconocido
-
+ Indexing completed in {0} msSe completó el indexado en {0} ms
-
+ The project index has been successfully rebuilt.El índice del proyecto se ha reconstruido con éxito.
-
+ InformationInformación
-
+ WarningAdvertencia
-
+ ErrorError
-
+ This is a bug!¡Esto es una falla del programa!
-
+ Internal ErrorError Interno
-
+ ExitSalir
-
+ Do you want to exit novelWriter?¿Desea salir de novelWriter?
@@ -1603,1203 +1554,670 @@
Proyecto Nuevo
-
- Create new project
- Crea un nuevo proyecto
-
-
-
+ Open ProjectAbrir Proyecto
-
- Open project
- Abre un proyecto
-
-
-
+ Save ProjectGuardar Proyecto
-
- Save project
- Guarda el proyecto actual
-
-
-
+ Close ProjectCerrar Proyecto
-
- Close project
- Cierra el proyecto actual
-
-
-
+ Project SettingsConfiguración del Proyecto
-
- Project settings
- Accede a la configuración del proyecto
-
-
-
+ Project DetailsDetalles del Proyecto
-
- Project details
- Accede a los detalles del proyecto
-
-
-
+ Create Root FolderCrear Carpeta Raíz
-
+ Novel RootRaíz para la Novela
-
+ Plot RootRaíz para los Argumentos
-
+ Character RootRaíz para los Personajes
-
+ Location RootRaíz para las Ubicaciones
-
+ Timeline RootRaíz para las Líneas de Tiempo
-
+ Object RootRaíz para los Objetos
-
+ Entity RootRaíz para las Entidades
-
+ Custom RootRaíz Personalizada
-
- Outtakes Root
- Raíz para el Material Descartado
+
+ Archive Root
+ Raíz para un Archivo
-
+ Create FolderCrear Carpeta
-
- Create folder
- Crea una carpeta nueva
-
-
-
+ Edit ItemEditar Ítem
-
- Change project item settings
- Cambia la configuración del ítem del proyecto
-
-
-
+ Delete ItemEliminar Ítem
-
- Delete selected project item
- Elimina el ítem seleccionado del proyecto
-
-
-
+ Move Item UpDesplazar Ítem hacia Arriba
-
- Move project item up
- Mueve el ítem hacia arriba
-
-
-
+ Move Item DownDesplazar Ítem hacia Abajo
-
- Move project item down
- Mueve el ítem hacia abajo
-
-
-
+ Undo Last MoveDeshacer el Desplazamiento
-
- Undo last item move
- Deshace el último desplazamiento de ítem
-
-
-
+ Empty TrashVaciar la Papelera
-
- Permanently delete all files in the Trash folder
- Elimina permanentemente todos los archivos en la carpeta Papelera
-
-
-
+ ExitSalir
-
- Exit novelWriter
- Abandona novelWriter
-
-
-
+ &Document&Documento
-
+ New DocumentDocumento Nuevo
-
- Create new document
- Crea un documento nuevo
-
-
-
+ Open DocumentAbrir Documento
-
- Open selected document
- Abre un documento
-
-
-
+ Save DocumentGuardar Documento
-
- Save current document
- Guarda el documento actual
-
-
-
+ Close DocumentCerrar Documento
-
- Close current document
- Cierra el documento actual
-
-
-
+ View DocumentPrevisualizar Documento
-
- View document as HTML
- Abre la vista previa HTML del documento
-
-
-
+ Close Document ViewCerrar Previsualización
-
- Close document view pane
- Cierra el panel de vista previa del documento
-
-
-
+ Show File DetailsMostrar Detalles del Archivo
-
- Shows a message box with the document location in the project folder
- Muestra un cuadro de texto con la ubicación del documento dentro de la carpeta del proyecto
+
+ Import Text from File
+ Importar Texto desde un Archivo
-
- Import from File
- Importar desde un Archivo
-
-
-
- Import document from a text or markdown file
- Importa un documento a partir de un archivo de texto o markdown
-
-
-
+ Merge Folder to DocumentCombinar Carpeta en Documento
-
- Merge a folder of documents to a single document
- Combina una carpeta de documentos a un solo documento
-
-
-
+ Split Document to FolderSeparar Documento a Carpeta
-
- Split a document into a folder of multiple documents
- Separa el documento en múltiples documentos en una carpeta
-
-
-
+ &Edit&Editar
-
+ UndoDeshacer
-
- Undo last change
- Deshace el último cambio
-
-
-
+ RedoRehacer
-
- Redo last change
- Vuelve a hacer el último cambio
-
-
-
+ CutCortar
-
- Cut selected text
- Corta el texto seleccionado
-
-
-
+ CopyCopiar
-
- Copy selected text
- Copia el texto seleccionado
-
-
-
+ PastePegar
-
- Paste text from clipboard
- Pega un texto desde el portapapeles
-
-
-
+ Select AllSeleccionar Todo
-
- Select all text in document
- Selecciona todo el texto del documento
-
-
-
+ Select ParagraphSeleccionar Párrafo
-
- Select all text in paragraph
- Selecciona todo el texto del párrafo
-
-
-
+ &View&Ver
-
- Focus Project Tree
- Enfocar el Árbol del Proyecto
+
+ Go to Project Tree
+ Ir al Árbol del Proyecto
-
- Move focus to project tree
- Cambia el foco al árbol del proyecto
+
+ Go to Document Editor
+ Ir al Editor de Documentos
+
+
+
+ Go to Document Viewer
+ Ir a la Visualización
+
+
+
+ Go to Outline
+ Ir a la Estructura
+
+
+
+ Navigate Backward
+ Navegar hacia atrás
- Focus Document Editor
- Enfocar el Editor de Documentos
+ Navigate Forward
+ Navegar hacia adelante
-
- Move focus to left document pane
- Cambia el foco al panel de documentos izquierdo
-
-
-
- Focus Document Viewer
- Enfocar la Previsualización
-
-
-
- Move focus to right document pane
- Cambia el foco al panel de documentos derecho
-
-
-
- Focus Outline
- Enfocar Estructura
-
-
-
- Move focus to outline
- Cambia el foco al panel de estructura del proyecto
-
-
-
- Go Backward
- Ir Atrás
-
-
-
- Move backward in the view history of the right pane
- Retrocede un paso en el historial del panel de la derecha
-
-
-
- Go Forward
- Ir Adelante
-
-
-
- Move forward in the view history of the right pane
- Avanza un paso en el historial del panel de la derecha
-
-
-
+ Focus ModeModo Enfocado
-
- Toggles a distraction free mode, only showing text editor
- Alterna a un modo libre de distracciones, que solamente muestra el editor de texto
-
-
-
+ Full Screen ModeModo Pantalla Completa
-
- Maximises the main window
- Maximiza la ventana principal
-
-
-
+ &Insert&Insertar
-
+ DashesRayas y Guiones
-
+ Short DashGuion
-
- Insert short dash (en dash)
- Inserta un guion auxiliar
-
-
-
+ Long DashRaya
-
- Insert long dash (em dash)
- Inserta un guion largo
-
-
-
+ Horizontal BarBarra Horizontal
-
- Insert a horizontal bar (quotation dash)
- Inserta una barra horizontal (raya de diálogo)
-
-
-
+ Figure DashGuion de Combinación
-
- Insert figure dash (same width as a number character)
- Inserta un guion de combinación gráfica (del mismo ancho que el carácter de un número)
-
-
-
+ Quote MarksComillas
-
+ Left Single QuoteComilla Simple de Apertura
-
- Insert left single quote
- Inserta una comilla simple de apertura
-
-
-
+ Right Single QuoteComilla Simple de Cierre
-
- Insert right single quote
- Inserta una comilla simple de cierre
-
-
-
+ Left Double QuoteComilla Doble de Apertura
-
- Insert left double quote
- Inserta una comilla doble de apertura
-
-
-
+ Right Double QuoteComilla Doble de Cierre
-
- Insert right double quote
- Inserta una comilla doble de cierre
-
-
-
+ Alternative ApostropheApóstrofo Alternativo
-
- Insert modifier letter single apostrophe
- Inserta un apóstrofo
-
-
-
+ General PunctuationPuntuación General
-
+ EllipsisPuntos Suspensivos
-
- Insert ellipsis
- Inserta puntos suspensivos
-
-
-
+ PrimePrima
-
- Insert a prime symbol
- Inserta el signo de prima
-
-
-
+ Double PrimeDoble Prima
-
- Insert a double prime symbol
- Inserta el signo de doble prima
-
-
-
+ White SpacesEspacio
-
+ Non-Breaking SpaceEspacio Duro
-
- Insert a non-breaking space
- Inserta un espacio de no separación (entre renglones)
-
-
-
+ Thin SpaceEspacio Angosto
-
- Insert a thin space
- Inserta un espacio angosto
-
-
-
+ Thin Non-Breaking SpaceEspacio Duro Angosto
-
- Insert a thin non-breaking space
- Inserta un espacio de no separación (entre renglones) angosto
-
-
-
+ Other SymbolsOtros Signos
-
+ List BulletViñeta de Lista
-
- Insert a list bullet
- Inserta una viñeta de lista
-
-
-
+ Hyphen BulletViñeta Guion
-
- Insert a hyphen bullet (alternative bullet)
- Inserta un guion como viñeta alternativa
-
-
-
+ Flower MarkSigno Flor
-
- Insert a flower mark (alternative bullet)
- Inserta un signo de puntuación en flor como viñeta alternativa
-
-
-
+ Per MillePor Mil
-
- Insert a per mille symbol
- Inserta el signo por mil
-
-
-
+ Degree SymbolSigno de Grado
-
- Insert a degree symbol
- Inserta el signo de grado
-
-
-
+ Minus SignSigno Menos
-
- Insert a minus sign (not a hypen or dash)
- Inserta un signo menos (no un guion ni raya)
-
-
-
+ Times SignSigno de Multiplicación
-
- Insert a times sign (multiplication cross)
- Inserta el signo aspa de multiplicación
-
-
-
+ Division SignSigno de División
-
- Insert a division sign
- Inserta un signo óbelo de división
-
-
-
+ Tags and ReferencesEtiquetas y Referencias
-
+ Page Break and SpaceSaltos
-
+ Page BreakSalto de Página
-
- Insert a page break command
- Inserta un comando de salto de página
-
-
-
+ Vertical Space (Single)Salto Vertical (Único)
-
- Insert a vertical space equal to one paragraph
- Inserta un espacio vertical equivalente a un párrafo
-
-
-
+ Vertical Space (Multi)Salto Vertical (Múltiple)
-
- Insert a vertical space equal to n paragraphs
- Inserta un espacio vertical equivalente a n párrafos
-
-
-
+ &Format&Formato
-
+ EmphasisÉnfasis
-
- Add emphasis to selected text (italic)
- Añade énfasis (cursiva) al texto seleccionado
-
-
-
+ Strong EmphasisÉnfasis fuerte
-
- Add strong emphasis to selected text (bold)
- Añade énfasis fuerte (negrita) al texto seleccionado
-
-
-
+ StrikethroughTachado
-
- Add strikethrough to selected text
- Tacha el texto seleccionado
-
-
-
+ Wrap Double QuotesEnvolver con Comillas Dobles
-
- Wrap selected text in double quotes
- Envuelve el texto seleccionado con comillas dobles
-
-
-
+ Wrap Single QuotesEnvolver con Comillas Simples
-
- Wrap selected text in single quotes
- Envuelve el texto seleccionado con comillas simples
-
-
-
+ Header 1 (Partition)Encabezado 1 (Partición)
-
- Set the text block format to Header 1 (Partition)
- Cambia el formato del bloque de texto a Encabezado 1 (Partición)
-
-
-
+ Header 2 (Chapter)Encabezado 2 (Capítulo)
-
- Set the text block format to Header 2 (Chapter)
- Cambia el formato del bloque de texto a Encabezado 2 (Capítulo)
-
-
-
+ Header 3 (Scene)Encabezado 3 (Escena)
-
- Set the text block format to Header 3 (Scene)
- Cambia el formato del bloque de texto a Encabezado 3 (Escena)
-
-
-
+ Header 4 (Section)Encabezado 4 (Sección)
-
- Set the text block format to Header 4 (Section)
- Cambia el formato del bloque de texto a Encabezado 4 (Sección)
-
-
-
+ Novel TitleTítulo de la Novela
-
- Set the text block format to Novel Title
- Cambia el formato del bloque de texto a Título de Novela
-
-
-
+ Unnumbered ChapterCapítulo Sin Número
-
- Set the text block format to Unnumbered Chapter
- Cambia el formato del bloque de texto a Capítulo Sin Numerar
-
-
-
+ Align LeftAlinear a la Izquierda
-
- Left-align the text block
- Ajusta la alineación del bloque de texto a la izquierda
-
-
-
+ Align CentreAlinear al Centro
-
- Centre the text block
- Ajusta la alineación del bloque de texto al centro
-
-
-
+ Align RightAlinear a la Derecha
-
- Right-align the text block
- Ajusta la alineación del bloque a la derecha
-
-
-
+ Indent LeftIndentar a la Izquierda
-
- Increase the text block's left margin
- Increase the text block's left margin
-
-
-
+ Indent RightIndentar a la Derecha
-
- Increase the text block's right margin
- Increase the text block's right margin
+
+ Toggle Comment
+ Alternar a Comentario
-
- Comment
- Comentario
-
-
-
- Change the text block format to comment
- Cambia el formato del bloque de texto a comentario
-
-
-
+ Remove Block FormatQuitar Formato del Bloque
-
- Strip text block format
- Elimina el formato del bloque de texto
+
+ Convert Single Quotes
+ Convertir Comillas Simples de Apertura
-
- Replace Single Quotes
- Reemplazar Comillas Simples
+
+ Convert Double Quotes
+ Convertir Comillas Dobles de Apertura
-
- Replace all straight single quotes in the selected text
- Reemplaza todas las comillas simples en el texto seleccionado
-
-
-
- Replace Double Quotes
- Reemplazar Comillas Dobles
-
-
-
- Replace all straight double quotes in the selected text
- Reemplaza todas las comillas dobles en el texto seleccionado
-
-
-
+ Remove In-Paragraph BreaksQuitar los Quiebres de Párrafo
-
- Remove all line breaks within paragraphs in the selected text
- Elimina todos los quiebres de línea que ocurrieran dentro de los párrafos en el texto seleccionado
-
-
-
+ &Search&Búsqueda
-
+ FindBuscar
-
- Find text in document
- Halla un texto en el documento
-
-
-
+ ReplaceReemplazar
-
- Replace text in document
- Reemplaza un texto en el documento
-
-
-
+ Find NextBuscar Siguiente
-
- Find next occurrence of text in document
- Busca la siguiente coincidencia de texto en el documento
-
-
-
+ Find PreviousBuscar Anterior
-
- Find previous occurrence of text in document
- Busca la anterior coincidencia de texto en el documento
-
-
-
+ Replace NextReemplazar Siguiente
-
- Find and replace next occurrence of text in document
- Busca y reemplaza la siguiente coincidencia de texto en el documento
-
-
-
+ &Tools&Herramientas
-
+ Check SpellingComprobar Ortografía
-
- Toggle check spelling
- Activa la búsqueda de errores ortográficos
-
-
-
+ Re-Run Spell CheckReiniciar la Comprobación Ortográfica
-
- Run the spell checker on current document
- Vuelve a comprobar la ortografía del documento actual
-
-
-
+ Project Word ListLista de Palabras del Proyecto
-
- Edit the project's word list
- Edit the project's word list
-
-
-
+ Rebuild IndexReconstruir el Índice
-
- Rebuild the tag indices and word counts
- Reconstruye los índices de etiquetas y el total de palabras
-
-
-
+ Rebuild OutlineReconstruir Estructura
-
- Rebuild the novel outline tree
- Reconstruye el árbol de la estructura de la novela
-
-
-
+ Auto-Update OutlineActualizar Estructura Automáticamente
-
- Update project outline when a novel file is changed
- Actualiza la estructura del proyecto cuando cambia un archivo de novela
-
-
-
- Backup Project Folder
- Respaldar Datos de la Carpeta del Proyecto
-
-
-
+ Backup ProjectCrea una copia de seguridad del proyecto
-
+ Build Novel ProjectCompilar el Proyecto de Novela
-
- Launch the Build novel project tool
- Lanza la herramienta de compilación de la novela
-
-
-
+ Writing StatisticsEstadísticas de Redacción
-
- Show the writing statistics dialogue
- Muestra el diálogo de estadísticas de redacción
-
-
-
-
+ PreferencesPreferencias
-
+ &Help&Ayuda
-
-
+ About novelWriterAcerca de novelWriter
-
-
+ About Qt5Acerca de Qt5
-
+ User Manual (Online)Manual de Usuario (En línea)
-
- Open documentation in browser
- Abre la documentación en un navegador de internet
-
-
-
+ User Manual (PDF)Manual de Usuario (PDF)
-
- Open PDF documentation
- Abre la documentación en formato PDF
-
-
-
+ Report an Issue (GitHub)Reportar un Problema (GitHub)
-
- Report a bug or issue on GitHub at {0}
- Reporte su problema o falla en GitHub en {0} (en idioma inglés)
-
-
-
+ Ask a Question (GitHub)Hacer una Pregunta (GitHub)
-
- Ask a question on GitHub at {0}
- Realice su pregunta en GitHub en {0} (en idioma inglés)
-
-
-
+ The novelWriter WebsiteEl Sitio Web de novelWriter
-
- Open the novelWriter website at {0}
- Abre el sitio web de novelWriter en {0}
-
-
-
+ Check for New ReleaseVerificar Versiones Nuevas
-
-
- Check for latest release of novelWriter
- Comprueba cuál es la publicación más reciente de novelWriter
- GuiMainStatus
@@ -2998,107 +2416,103 @@
GuiPreferencesAutomation
-
+ Automatic FeaturesCaracterísticas Automáticas
-
+ Auto-select word under cursorSeleccionar la palabra bajo el cursor
-
+ Apply formatting to word under cursor if no selection is made.Se aplicará el formato a la palabra situada bajo el cursor si no hay selección.
-
+ Auto-replace text as you typeReemplazar el texto mientras se escribe
-
+ Allow the editor to replace symbols as you type.Permite al editor reemplazar símbolos mientras escriba.
-
+ Replace as You TypeReemplazar Mientras Escriba
-
+ Auto-replace single quotesReemplazar comillas simples
-
- Try to guess which is an opening or a closing single quote.
- Se intentará adivinar cuál comilla simple es de apertura o de cierre.
+
+
+ Try to guess which is an opening or a closing quote.
+ Se intentará adivinar cuáles comillas son de apertura o de cierre.
-
+ Auto-replace double quotesReemplazar comillas dobles
-
- Try to guess which is an opening or a closing double quote.
- Se intentará adivinar cuál comilla doble es de apertura o de cierre.
-
-
-
+ Auto-replace dashesReemplazar guiones
-
+ Double and triple hyphens become short and long dashes.Los guiones dobles y triples se convertirán en rayas cortas y largas.
-
+ Auto-replace dotsReemplazar puntos
-
+ Three consecutive dots become ellipsis.Tres puntos consecutivos se convierten en el carácter de puntos suspensivos.
-
+ Automatic PaddingRelleno Automático
-
+ Insert non-breaking space beforeInsertar un espacio de no separación previo
-
+ Automatically add space before any of these symbols.Añade un espacio automáticamente delante de un símbolo de esta lista.
-
+ Insert non-breaking space afterInsertar un espacio de no separación posterior
-
+ Automatically add space after any of these symbols.Añade un espacio automáticamente detrás de un símbolo de esta lista.
-
+ Use thin space insteadUsar un espacio angosto
-
+ Inserts a thin space instead of a regular space.Inserta un espacio angosto en lugar de un espacio regular.
@@ -3116,20 +2530,18 @@
Tipografía
+
+
+
- Font for the document editor and viewer.
- Fuente a usar en el editor y el previsualizador de documentos.
+ Applies to both document editor and viewer.
+ A usar tanto en el editor como en el previsualizador de documentos.Font sizeTamaño
-
-
- Font size for the document editor and viewer.
- Tamaño de la fuente para el editor y el previsualizador de documentos.
- pt
@@ -3143,12 +2555,12 @@
Maximum text width in "Normal Mode"
- Maximum text width in "Normal Mode"
+ Anchura máxima del texto en "Modo Normal"Set to 0 to disable this feature.
- Set to 0 to disable this feature.
+ Establecer en 0 para desactivar esta función.
@@ -3161,42 +2573,32 @@
Maximum text width in "Focus Mode"
- Maximum text width in "Focus Mode"
+ Anchura máxima del texto en "Modo Enfocado"The maximum width cannot be disabled.
- The maximum width cannot be disabled.
+ La anchura máxima no se puede desactivar.Hide document footer in "Focus Mode"
- Hide document footer in "Focus Mode"
+ Ocultar el pie del documento en el "Modo Enfocado"
- Hide the information bar at the bottom of the document.
- Esconde la barra de información al pie del documento.
+ Hide the information bar in the document editor.
+ Oculta la barra de información del editor del documento.
- Justify the text margins in editor and viewer
- Justificar los márgenes del texto en el editor y el previsualizador
-
-
-
- Lay out text with straight edges in the editor and viewer.
- Alinea el texto con bordes rectos en el editor y el previsualizador.
+ Justify the text margins
+ Justificar los márgenes del texto
- Text margin
- Márgen del texto
-
-
-
- The minimum margin around the text in the editor and viewer.
- The minimum margin around the text in the editor and viewer.
+ Minimum text margin
+ Margen mínimo del texto
@@ -3228,8 +2630,8 @@
- Spell check language ({0})
- Idioma de la comprobación ortográfica ({0})
+ Spell check language
+ Idioma de la comprobación ortográfica
@@ -3263,86 +2665,66 @@
- How often the word count is updated.
- Con qué frecuencia se actualizará el total de palabras.
-
-
- secondssegundos
-
- Include project notes in total word count
+
+ Include project notes in status bar word countIncluir a las notas del proyecto en el total de palabras
-
- Affects the word count shown on the status bar.
- Afectará al total de palabras que se muestra en la barra de estado.
-
-
-
+ Writing GuidesGuías de Escritura
-
+ Show tabs and spacesMostrar tabulaciones y espacios
-
- Add symbols to indicate tabs and spaces in the editor.
- Añade símbolos en el editor que indican la presencia de tabulaciones y espacios.
-
-
-
+ Show line endingsMostrar fin de línea
-
- Add a symbol to indicate line endings in the editor.
- Añade un símbolo en el editor que indica la presencia del final de cada línea.
-
-
-
+ Scroll BehaviourDesplazamiento
-
+ Scroll past end of the documentDesplazar más allá del final del documento
-
+ Set to 0 to disable this feature.
- Set to 0 to disable this feature.
+ Establecer en 0 para desactivar esta función.
-
+ lines
- lines
+ líneas
-
+ Typewriter style scrolling when you typeDesplazamiento estilo "máquina de escribir" cuando teclea
-
- Try to keep the cursor at a fixed vertical position.
- Intentará conservar el cursor de texto en una posición vertical fija.
+
+ Keeps the cursor at a fixed vertical position.
+ Conservará el cursor de texto en una posición vertical fija.
-
+ Minimum position for Typewriter scrollingPosicionamiento mínimo para desplazar tipo "Máquina de escribir"
-
+ Percentage of the editor height from the top.Un porcentaje de la altura del editor desde el tope.
@@ -3365,8 +2747,8 @@
- Changing this requires restarting novelWriter.
- Será necesario reiniciar novelWriter tras cambiar esto.
+ Requires restart.
+ Requiere reinicio.
@@ -3405,8 +2787,8 @@
- The novel document labels will be bold and underlined.
- Las etiquetas de documentos de novela se mostrarán en negrita y subrayadas.
+ Makes them stand out in the project tree.
+ Hace que se destaquen en el árbol del proyecto.
@@ -3449,7 +2831,7 @@
- How often the open document is automatically saved.
+ How often the document is automatically saved.Con qué frecuencia se guardará automáticamente el documento actual.
@@ -3465,7 +2847,7 @@
- How often the open project is automatically saved.
+ How often the project is automatically saved.Con qué frecuencia se guardará automáticamente el proyecto actual.
@@ -3548,47 +2930,47 @@
GuiPreferencesQuotes
-
+ Quotation StyleEmpleo de Comillas
-
+ Single quote open styleEstilo de comilla de apertura simple
-
+ The symbol to use for a leading single quote.El símbolo a usar para una comilla de apertura simple.
-
+ Single quote close styleEstilo de comilla de cierre simple
-
+ The symbol to use for a trailing single quote.El símbolo a usar para una comilla de cierre simple.
-
+ Double quote open styleEstilo de comilla de apertura doble
-
+ The symbol to use for a leading double quote.El símbolo a usar para una comilla de apertura doble.
-
+ Double quote close styleEstilo de comilla de cierre doble
-
+ The symbol to use for a trailing double quote.El símbolo a usar para una comilla de cierre doble.
@@ -3596,84 +2978,76 @@
GuiPreferencesSyntax
-
+ Highlighting ThemeTema de Resaltado
-
+ Highlighting themeTema de resaltado
-
- Colour theme to apply to the editor and viewer.
+
+ Colour theme for the editor and viewer.Tema de colores que aplicar al editor y al previsualizador.
-
+ Quotes & DialogueCitas y Diálogos
-
+ Highlight text wrapped in quotesResaltar el texto entrecomillado
-
- Applies to single, double and straight quotes.
- Se aplicará a las comillas simples y dobles, y a apóstrofos.
+
+
+
+ Applies to the document editor only.
+ A usar en el editor de documentos.
-
+ Allow open-ended single quotesPermitir comillas simples sin cierre
-
+ Highlight single-quoted line with no closing quote.Se resaltará la línea de la comilla simple sin una comilla de cierre.
-
+ Allow open-ended double quotesPermitir comillas dobles sin cierre
-
+ Highlight double-quoted line with no closing quote.Se resaltará la línea de comillas dobles sin comillas de cierre.
-
+ Text EmphasisÉnfasis
-
+ Add highlight colour to emphasised textAñadir resalte de color al texto enfatizado
-
- Applies to emphasis (italic) and strong (bold).
- Se aplicará al énfasis (cursiva) y al énfasis fuerte (negrita).
-
-
-
+ Text ErrorsErrores del Texto
-
- Mark redundant spaces
- Marcar los espacios redundantes
-
-
-
- Trailing spaces or multiple spaces between words.
- Los múltiples espacios entre palabras o de fin de línea.
+
+ Highlight multiple spaces
+ Resaltar espacios múltiples
@@ -3693,11 +3067,6 @@
ContentsContenido
-
-
- Close
- Cerrar
- GuiProjectDetailsContents
@@ -3877,45 +3246,30 @@
GuiProjectEditReplace
-
+ Text Replace List for Preview and ExportLista de Reemplazos de Texto para Previsualizar y Exportar
-
+ KeywordPalabra Clave
-
+ Replace WithReemplazar Con
-
- Add new entry
- Añadir una entrada nueva
-
-
-
- Delete selected entry
- Eliminar la entrada seleccionada
-
-
-
+ Select item to editSeleccionar el ítem a editar
-
+ SaveGuardar
-
-
- Save entry
- Guardar entrada
- GuiProjectEditStatus
@@ -3940,57 +3294,47 @@
Uso
-
- Add new entry
- Añadir una entrada nueva
-
-
-
- Delete selected entry
- Eliminar la entrada seleccionada
-
-
-
+ Select item to editSeleccionar el ítem a editar
-
+ ColourColor
-
+ SaveGuardar
-
+ Select ColourEscoger un Color
-
+ New ItemNuevo Ítem
-
+ Cannot delete a status item that is in use.No se puede eliminar un ítem de estado actualmente en uso.
-
+ Not in useNo está en uso
-
+ Used onceUn ítem lo usa
-
+ Used by {0} items{0} ítems lo usan
@@ -4056,7 +3400,7 @@
Remove '{0}' from the recent projects list? The project files will not be deleted.
- Remove '{0}' from the recent projects list? The project files will not be deleted.
+ ¿Eliminar '{0}' de la lista de proyectos recientes? Los archivos del proyecto no se eliminarán.
@@ -4130,143 +3474,143 @@
Por favor seleccione una ubicación válida en el árbol para añadir la carpeta.
-
-
+
+ Did not find anywhere to add the file or folder!¡No se encontró dónde añadir el archivo o carpeta!
-
+ Cannot add new files or folders to the Trash folder.No se puede añadir nuevos archivos o carpetas a la carpeta Papelera.
-
+ New FileNuevo Archivo
-
+ Cannot add new folder to this item. Maximum folder depth has been reached.No se puede añadir una nueva carpeta a este ítem. Se alcanzó el máximo de profundidad de carpetas.
-
+ New FolderNueva Carpeta
-
+ There is currently no Trash folder in this project.No hay actualmente una carpeta Papelera en este proyecto.
-
+ The Trash folder is already empty.La carpeta Papelera ya está vacía.
-
+ Empty TrashVaciar la Papelera
-
+ Permanently delete {0} file(s) from Trash?¿Eliminar {0} archivo(s) permanentemente de la Papelera?
-
-
+
+ Delete FileEliminar Archivo
-
+ Permanently delete file '{0}'?
- Permanently delete file '{0}'?
+ ¿Eliminar permanentemente el archivo '{0}'?
-
+ Could not delete document file.No se puedo eliminar el archivo de documento.
-
+ Move file '{0}' to Trash?
- Move file '{0}' to Trash?
+ ¿Mover el archivo '{0}' a la Papelera?
-
+ Cannot delete folder. It is not empty. Recursive deletion is not supported. Please delete the content first.No se puede eliminar la carpeta. No está vacía. No se permite eliminar recursivamente. Por favor, primero elimine los contenidos.
-
+ Cannot delete root folder. It is not empty. Recursive deletion is not supported. Please delete the content first.No se puede eliminar la carpeta raíz. No está vacía. No se permite eliminar recursivamente. Por favor, primero elimine los contenidos.
-
-
+
+ The item cannot be moved to that location.El ítem no puede moverse a esa ubicación.
-
+ There is nowhere to add item with name '{0}'.
- There is nowhere to add item with name '{0}'.
+ No hay ningún lugar en el que añadir un elemento nombrado '{0}'.GuiProjectTreeMenu
-
+ Edit Project ItemEditar este Ítem del Proyecto
-
+ Open DocumentAbrir Documento
-
+ View DocumentPrevisualizar Documento
-
+ Toggle Included FlagAlternar Compilación para el Ítem
-
+ New FileNuevo Archivo
-
+ New FolderNueva Carpeta
-
+ Delete ItemEliminar Ítem
-
+ Empty TrashVaciar la Papelera
-
+ Move Item UpDesplazar Ítem hacia Arriba
-
+ Move Item DownDesplazar Ítem hacia Abajo
@@ -4314,24 +3658,14 @@
Lista de Palabras del Proyecto
-
- Add new entry
- Añadir una entrada nueva
-
-
-
- Delete selected entry
- Eliminar la entrada seleccionada
-
-
-
+ Cannot add a blank word.No se puede añadir una palabra en blanco.
-
+ The word '{0}' is already in the word list.
- The word '{0}' is already in the word list.
+ La palabra '{0}' ya está en la lista de palabras.
@@ -4490,329 +3824,314 @@
NWProject
-
+ Duplicate root item detected.Se ha detectado un ítem raíz duplicado.
-
- Trash
- Papelera
-
-
-
-
+
+ NewNuevo
-
+ NoteNota
-
+ DraftBorrador
-
+ FinishedTerminado
-
+ MinorMenor
-
+ MajorMayor
-
+ MainPrincipal
-
+ New ProjectProyecto Nuevo
-
+ ByPor
-
-
+
+ NovelNovela
-
+ PlotArgumento
-
+ CharactersPersonajes
-
+ WorldMundo
-
-
+
+ Title PageTítulo de la Página
-
-
-
+
+
+ New ChapterCapítulo Nuevo
-
-
+
+ New SceneEscena Nueva
-
+ Chapter {0}Capítulo {0}
-
-
+
+ Scene {0}Escena {0}
-
+ File not found: {0}No se encontró el archivo: {0}
-
-
+
+ Failed to parse project xml.Hubo un fallo al procesar el xml del proyecto.
-
+ Attempting to open backup project file instead.En su lugar, se intentará abrir la copia de seguridad del proyecto.
+
- UnknownDesconocido
-
+ Project file does not appear to be a novelWriterXML file.Aparentemente el archivo del proyecto no es un archivo novelWriterXML.
-
+ Unknown or unsupported novelWriter project file format. The project cannot be opened by this version of novelWriter. The file was saved with novelWriter version {0}.Formato de archivo de proyecto novelWriter desconocido, o no soportado. Esta versión de novelWriter no puede abrir el proyecto. El archivo se guardó con la versión {0} de novelWriter.
-
+ File VersionVersión de Archivo
-
+ The file format of your project is about to be updated. If you proceed, older versions of novelWriter will no longer be able to open this project. Continue?Se está por actualizar el formato de archivo de su proyecto. De continuar, ninguna versión anterior de novelWriter podrá abrir este proyecto. ¿Continuar?
-
- The format of your project will now be updated. You may also have to make a few minor changes to your title page and unnumbered chapters. Please check the 'Project Format Changes > File Format 1.3' section of the documentation for more information. It is available from the Help menu.
- The format of your project will now be updated. You may also have to make a few minor changes to your title page and unnumbered chapters. Please check the 'Project Format Changes > File Format 1.3' section of the documentation for more information. It is available from the Help menu.
-
-
-
+ Version ConflictConflicto de Versiones
-
+ This project was saved by a newer version of novelWriter, version {0}. This is version {1}. If you continue to open the project, some attributes and settings may not be preserved, but the overall project should be fine. Continue opening the project?Este proyecto se ha guardado en una versión nueva de novelWriter, la versión {0}. Ésta es la versión {1}. Si procede a abrir el proyecto, algunos atributos y opciones no serán preservadas, pero en general el proyecto no presentará problemas. ¿Continuar abriendo el proyecto?
-
+ Opened Project: {0}Se Abrió el Proyecto: {0}
-
+ Project path not set, cannot save project.No se estableció la ruta del proyecto, no se puede guardar el proyecto.
-
-
+
+ Failed to save project.Hubo un fallo al guardar el proyecto.
-
+ Saved Project: {0}Proyecto Guardado: {0}
-
+ Backing up project ...Respaldando el proyecto ...
-
- Cannot backup project because no backup path is set. Please set a valid backup location in Preferences.
- No se puede crear una copia de seguridad porque no hay una ruta para el respaldo. Por favor escoja una ubicación válida en las Preferencias.
+
+ Cannot backup project because no valid backup path is set. Please set a valid backup location in Preferences.
+ No se puede crear una copia de seguridad porque no hay una ruta válida para el respaldo. Por favor escoja una ubicación válida en las Preferencias.
-
+ Cannot backup project because no project name is set. Please set a Working Title in Project Settings.No se puede crear una copia de seguridad porque no se estableció el nombre del proyecto. Por favor escoja un Título Provisional en la Configuración del Proyecto.
-
- Cannot backup project because the backup path does not exist. Please set a valid backup location in Preferences.
- No se puede crear una copia de seguridad porque la ruta para el respaldo no existe. Por favor escoja una ubicación válida en las Preferencias.
-
-
-
+ Could not create backup folder.No se pudo crear la carpeta de respaldo.
-
+ Cannot backup project because the backup path is within the project folder to be backed up. Please choose a different backup path in Preferences.No se puede crear una copia de seguridad porque la ruta para el respaldo se encuentra dentro de la carpeta del proyecto a respaldar. Por favor escoja una diferente ubicación de respaldo en las Preferencias.
-
+ Backup from {0}Respaldo del {0}
-
+ Backup archive file written to: {0}El archivo de respaldo se ha escrito en: {0}
-
+ Could not write backup archive.No se puedo escribir el archivo de respaldo.
-
+ Project backed up to '{0}'
- Project backed up to '{0}'
+ Se ha respaldado el proyecto en '{0}'
-
-
+
+ Failed to create a new example project.Hubo un fallo al crear un nuevo proyecto de ejemplo.
-
+ Failed to create a new example project. Could not find the necessary files. They seem to be missing from this installation.Hubo un fallo al crear un nuevo proyecto de ejemplo. No se pudo encontrar los archivos necesarios. Aparentemente le faltan a esta instalación.
-
+ Could not create new project folder.No se pudo crear la carpeta del proyecto nuevo.
-
+ New project folder is not empty. Each project requires a dedicated project folder.La carpeta del proyecto nuevo no está vacía. Cada proyecto requiere de una carpeta de proyecto dedicada.
-
+ You must set a valid backup path in Preferences to use the automatic project backup feature.Debe establecer una ruta válida de respaldo en las Preferencias para poder usar la característica de respaldado automático de datos.
-
+ You must set a valid project name in Project Settings to use the automatic project backup feature.Debe establecer un nombre válido del proyecto en la Configuración del Proyecto para poder usar la característica de respaldado automático de datos.
-
+ andy
-
+ Could not create folder.No se pudo crear la carpeta.
-
+ Found {0} orphaned file(s) in project folder.Se encontraron {0} archivo(s) huérfano(s) en la carpeta del proyecto.
-
+ RecoveredRestaurado
-
+ [{0}] {1}[{0}] {1}
-
+ Recovered File {0}Se Restauró el Archivo {0}
-
+ One or more orphaned files could not be added back into the project. Make sure at least a Novel root folder exists.No se pudo añadir uno o más archivos huérfanos de vuelta al proyecto. Asegúrese de que exista al menos una carpeta raíz de Novela.
-
+ Not a folder: {0}No es una carpeta: {0}
-
+ Could not move: {0}No se pudo mover: {0}
-
-
+
+ Could not delete: {0}No se pudo eliminar: {0}
-
+ Could not make folder: {0}No se pudo crear la carpeta: {0}
-
+ Could not move item {0} to {1}.No se pudo mover el ítem {0} a {1}.
@@ -4827,7 +4146,7 @@
Select which additional root folders to make, and how to populate the Novel folder. If you don't want to add chapters or scenes, set the values to 0. You can add scenes without chapters.
- Select which additional root folders to make, and how to populate the Novel folder. If you don't want to add chapters or scenes, set the values to 0. You can add scenes without chapters.
+ Seleccione las carpetas raíz adicionales a crear, y cómo llenar la carpeta Novel. Si no desea agregar capítulos o escenas, establezca los valores a 0. Puede añadir escenas sin capítulos.
@@ -4880,7 +4199,7 @@
Press '{0}' to create the new project.
- Press '{0}' to create the new project.
+ Pulse '{0}' para crear el nuevo proyecto.
@@ -4998,7 +4317,7 @@
OK
- OK
+ OK
@@ -5006,7 +4325,7 @@
&OK
- &OK
+ &OK
@@ -5016,17 +4335,17 @@
&Cancel
- &Cancel
+ &Cancelar&Close
- &Close
+ &CerrarClose without Saving
- Close without Saving
+ Cerrar sin Guardar
@@ -5034,7 +4353,7 @@
OK
- OK
+ OK
@@ -5044,47 +4363,47 @@
Save All
- Save All
+ Guardar TodoOpen
- Open
+ Abrir&Yes
- &Yes
+ &SíYes to &All
- Yes to &All
+ Sí a &Todo&No
- &No
+ &NoN&o to All
- N&o to All
+ N&o a TodoAbort
- Abort
+ AbortarRetry
- Retry
+ ReintentarIgnore
- Ignore
+ Ignorar
@@ -5094,32 +4413,32 @@
Cancel
- Cancel
+ CancelarDiscard
- Discard
+ DescartarHelp
- Help
+ AyudaApply
- Apply
+ AplicarReset
- Reset
+ RestablecerRestore Defaults
- Restore Defaults
+ Restaurar valores predeterminados
@@ -5127,53 +4446,53 @@
Go Back
- Go Back
+ Volver< &Back
- < &Back
+ < &VolverContinue
- Continue
+ Continuar&Next
- &Next
+ &Siguiente&Next >
- &Next >
+ Seguir >Commit
- Commit
+ ConfirmarDone
- Done
+ Listo&Finish
- &Finish
+ &FinalizarCancel
- Cancel
+ CancelarHelp
- Help
+ Ayuda
@@ -5191,7 +4510,7 @@
Document '{0}' is too big ({1} MB). Skipping.
- Document '{0}' is too big ({1} MB). Skipping.
+ El documento '{0}' es demasiado grande ({1} MB). Omitiéndolo.
diff --git a/i18n/nw_nl_NL.ts b/i18n/nw_nl_NL.ts
new file mode 100644
index 00000000..332ceac8
--- /dev/null
+++ b/i18n/nw_nl_NL.ts
@@ -0,0 +1,4521 @@
+
+
+
+
+ Common
+
+
+ in the future
+ in de toekomst
+
+
+
+ just now
+ zojuist
+
+
+
+ a minute ago
+ een minuut geleden
+
+
+
+ {0} minutes ago
+ {0} minuten geleden
+
+
+
+ an hour ago
+ een uur geleden
+
+
+
+ {0} hours ago
+ {0} uur geleden
+
+
+
+ a day ago
+ een dag geleden
+
+
+
+ {0} days ago
+ {0} dagen geleden
+
+
+
+ a week ago
+ een week geleden
+
+
+
+ {0} weeks ago
+ {0} weken geleden
+
+
+
+ a month ago
+ een maand geleden
+
+
+
+ {0} months ago
+ {0} maanden geleden
+
+
+
+ a year ago
+ een jaar geleden
+
+
+
+ {0} years ago
+ {0} jaren geleden
+
+
+
+ Constant
+
+
+
+
+ None
+ Geen
+
+
+
+ Novel
+ Roman
+
+
+
+
+ Plot
+ Plot
+
+
+
+
+ Characters
+ Personages
+
+
+
+
+ Locations
+ Locaties
+
+
+
+
+ Timeline
+ Tijdslijn
+
+
+
+
+ Objects
+ Objecten
+
+
+
+
+ Entities
+ Entiteiten
+
+
+
+
+ Custom
+ Custom
+
+
+
+ Archive
+ Archief
+
+
+
+ Trash
+ Prullenbak
+
+
+
+
+ Novel Document
+ Roman Document
+
+
+
+
+ Project Note
+ Project Notitie
+
+
+
+ Root Folder
+ Hoofdmap
+
+
+
+ Folder
+ Map
+
+
+
+ Novel Title Page
+ Roman Titel Pagina
+
+
+
+ Novel Chapter
+ Roman Hoofdstuk
+
+
+
+ Novel Scene
+ Roman Scene
+
+
+
+ Tag
+ Label
+
+
+
+ Point of View
+ Perspectief
+
+
+
+
+ Focus
+ Focus
+
+
+
+ Title
+ Titel
+
+
+
+ Level
+ Niveau
+
+
+
+ Document
+ Document
+
+
+
+ Line
+ Regel
+
+
+
+ Chars
+ Tekens
+
+
+
+ Words
+ Woorden
+
+
+
+ Pars
+ Par.
+
+
+
+ POV
+ Perspectief
+
+
+
+ Synopsis
+ Synopsis
+
+
+
+ Straight single quotation mark
+ Recht enkel aanhalingsteken
+
+
+
+ Straight double quotation mark
+ Recht dubbel aanhalingsteken
+
+
+
+ Left single quotation mark
+ Linker enkel aanhalingsteken
+
+
+
+ Right single quotation mark
+ Rechter enkel aanhalingsteken
+
+
+
+ Single low-9 quotation mark
+ Enkel lage-9 aanhalingsteken
+
+
+
+ Single high-reversed-9 quotation mark
+ Enkel hoog-omgekeerd-9 aanhalingsteken
+
+
+
+ Left double quotation mark
+ Linker dubbel aanhalingsteken
+
+
+
+ Right double quotation mark
+ Rechter dubbel aanhalingsteken
+
+
+
+ Double low-9 quotation mark
+ Dubbel lage-9 aanhalingsteken
+
+
+
+ Double high-reversed-9 quotation mark
+ Dubbel hoog-omgekeerd-9 aanhalingsteken
+
+
+
+ Double low-reversed-9 quotation mark
+ Dubbel laag-omgekeerd-9 aanhalingsteken
+
+
+
+ Single left-pointing angle quotation mark
+ Enkel links-wijzende hoek aanhalingsteken
+
+
+
+ Single right-pointing angle quotation mark
+ Enkel rechts-wijzende hoek aanhalingsteken
+
+
+
+ Double left-pointing angle quotation mark
+ Dubbel links-wijzende hoek aanhalingsteken
+
+
+
+ Double right-pointing angle quotation mark
+ Dubbel rechts-wijzende hoek aanhalingsteken
+
+
+
+ Left corner bracket
+ Linker hoekbeugel
+
+
+
+ Right corner bracket
+ Rechter hoekbeugel
+
+
+
+ Left white corner bracket
+ Linker holle hoekbeugel
+
+
+
+ Right white corner bracket
+ Rechter holle hoekbeugel
+
+
+
+ GuiAbout
+
+
+
+ About novelWriter
+ Over novelWriter
+
+
+
+ About
+ Over
+
+
+
+ Release
+ Uitgave
+
+
+
+
+
+
+ Licence
+ Licentie
+
+
+
+ Website: {0}
+ Website: {0}
+
+
+
+ Credits
+ Bijdragen
+
+
+
+ Developer
+ Ontwikkelaar
+
+
+
+ Concept
+ Concept
+
+
+
+ i18n
+ i18n
+
+
+
+ novelWriter is a markdown-like text editor designed for organising and writing novels. It is written in Python 3 with a Qt5 GUI, using PyQt5.
+ novelWriter is een markdown-achtige tekstbewerker, ontworpen voor het organiseren en schrijven van romans. Het is geschreven in Python 3 met een Qt5 GUI met behulp van PyQt5.
+
+
+
+ novelWriter 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.
+ novelWriter is gratis software: u kunt het herdistribueren en/of aanpassen onder de voorwaarden van de GNU General Public License zoals gepubliceerd door de Free Software Foundation, óf versie 3 van de Licentie, óf (naar uw keuze) elke latere versie.
+
+
+
+ novelWriter 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.
+ novelWriter wordt verspreid in de hoop dat het nuttig is, maar ZONDER ENIGE GARANTIE; zonder zelfs de geïmpliceerde garantie van VERKOOPBAARHEID of GESCHIKTHEID VOOR EEN BEPAALD DOEL.
+
+
+
+ See the Licence tab for the full licence text, or visit the GNU website at {0} for more details.
+ Zie het tabblad Licentie voor de volledige licentietekst, of bezoek de GNU-website op {0} voor meer details.
+
+
+
+ Translations
+ Vertalingen
+
+
+
+ Theme: {0}
+ Thema: {0}
+
+
+
+
+
+ Author
+ Auteur
+
+
+
+
+
+ Credit
+ Dank aan
+
+
+
+ Icons: {0}
+ Pictogrammen: {0}
+
+
+
+ Syntax: {0}
+ Syntaxis: {0}
+
+
+
+ GuiBuildNovel
+
+
+ Build Novel Project
+ Bouw Roman Project
+
+
+
+ Title Formats for Novel Files
+ Titel Indelingen voor Roman Bestanden
+
+
+
+ Formatting Codes:
+ Opmaak codes:
+
+
+
+ {0} for the title as set in the document
+ {0} voor de titel zoals ingesteld in het document
+
+
+
+ {0} for chapter number (1, 2, 3)
+ {0} voor hoofdstuk nummer (1, 2, 3)
+
+
+
+ {0} for chapter number as a word (one, two)
+ {0} voor hoofdstuk nummer als een woord (één, twee)
+
+
+
+ {0} for chapter number in upper case Roman
+ {0} voor hoofdstuknummer in Romeinse hoofdletters
+
+
+
+ {0} for chapter number in lower case Roman
+ {0} voor hoofdstuknummer in Romeinse kleine letters
+
+
+
+ {0} for scene number within chapter
+ {0} voor scène nummer binnen hoofdstuk
+
+
+
+ {0} for scene number within novel
+ {0} voor scènenummer in de roman
+
+
+
+ Leave blank to skip this heading, or set to a static text, like for instance '{0}', to make a separator. The separator will be centred automatically and only appear between sections of the same type.
+ Laat leeg om deze kop over te slaan, of stel een statische tekst in, zoals bijvoorbeeld '{0}', om een scheiding te maken. De scheiding wordt automatisch gecentreerd en verschijnt alleen tussen secties van hetzelfde type.
+
+
+
+ Not Set
+ Niet ingesteld
+
+
+
+ Title
+ Titel
+
+
+
+ Chapter
+ Hoofdstuk
+
+
+
+ Unnumbered
+ Ongenummerd
+
+
+
+ Scene
+ Scène
+
+
+
+ Section
+ Sectie
+
+
+
+ Language
+ Taal
+
+
+
+ Hide scene
+ Verberg scène
+
+
+
+ Hide section
+ Verberg sectie
+
+
+
+ Font Options
+ Lettertype Opties
+
+
+
+ Font family
+ Lettertype familie
+
+
+
+ Font size
+ Lettertypegrootte
+
+
+
+ Line height
+ Regelhoogte
+
+
+
+ Justify text
+ Tekst uitvullen
+
+
+
+ Disable styling
+ Opmaak uitschakelen
+
+
+
+ Styling Options
+ Opmaak Opties
+
+
+
+ Include Options
+ Invoeg Opties
+
+
+
+ Include synopsis
+ Inclusief synopsis
+
+
+
+ Include comments
+ Inclusief opmerkingen
+
+
+
+ Include keywords
+ Inclusief trefwoorden
+
+
+
+ Include body text
+ Inclusief inhoudstekst
+
+
+
+ File Filter Options
+ Bestand Filter Opties
+
+
+
+ Include novel files
+ Inclusief roman bestanden
+
+
+
+ Include note files
+ Inclusief notitie bestanden
+
+
+
+ Ignore export flag
+ Negeer export vlag
+
+
+
+ Export Options
+ Export Opties
+
+
+
+ Replace tabs with spaces
+ Vervang tabs door spaties
+
+
+
+ Replace Unicode in HTML
+ Unicode in HTML vervangen
+
+
+
+ Build Preview
+ Bouw voorbeeld
+
+
+
+ Print
+ Afdrukken
+
+
+
+ Print Preview
+ Afdrukvoorbeeld
+
+
+
+ Print to PDF
+ Afdrukken naar PDF
+
+
+
+ Save As
+ Opslaan als
+
+
+
+ Open Document (.odt)
+ Open Document (.odt)
+
+
+
+ Flat Open Document (.fodt)
+ Flat Open Document (.fodt)
+
+
+
+ novelWriter HTML (.htm)
+ novelWriter HTML (.htm)
+
+
+
+ novelWriter Markdown (.nwd)
+ novelWriter Markdown (.nwd)
+
+
+
+ Standard Markdown (.md)
+ Standaard Markdown (.md)
+
+
+
+ GitHub Markdown (.md)
+ GitHub Markdown (.md)
+
+
+
+ JSON + novelWriter HTML (.json)
+ JSON + novelWriter HTML (.json)
+
+
+
+ JSON + novelWriter Markdown (.json)
+ JSON + novelWriter Markdown (.json)
+
+
+
+ Close
+ Sluiten
+
+
+
+ Failed to generate preview. The result is too big.
+ Genereren van voorbeeld mislukt. Het resultaat is te groot.
+
+
+
+ There were problems when building the project:
+ Er waren problemen bij het bouwen van het project:
+
+
+
+ Open Document
+ Open Document
+
+
+
+ Flat Open Document
+ Flat Open Document
+
+
+
+ Plain HTML
+ Plain HTML
+
+
+
+ novelWriter Markdown
+ novelWriter Markdown
+
+
+
+ Standard Markdown
+ Standaard Markdown
+
+
+
+ GitHub Markdown
+ GitHub Markdown
+
+
+
+ JSON + novelWriter HTML
+ JSON + novelWriter HTML
+
+
+
+ JSON + novelWriter Markdown
+ JSON + novelWriter Markdown
+
+
+
+ PDF
+ PDF
+
+
+
+ Save Document As
+ Document opslaan als
+
+
+
+ {0} file successfully written to:
+ {0} bestand succesvol weggeschreven naar:
+
+
+
+ Failed to write {0} file. {1}
+ Wegschrijven van {0} bestand mislukt. {1}
+
+
+
+ GuiBuildNovelDocView
+
+
+ This area will show the content of the document to be exported or printed. Press the "Build Preview" button to generate content.
+ In dit gebied wordt de inhoud van het document getoond die geëxporteerd of afgedrukt moet worden. Druk op de knop "Bouw voorbeeld" om inhoud te genereren.
+
+
+
+ Unknown
+ Onbekend
+
+
+
+ Build Time:
+ Bouw tijd:
+
+
+
+ GuiDocEditFooter
+
+
+ Status
+ Status
+
+
+
+ Line: {0} ({1})
+ Regel: {0} ({1})
+
+
+
+ Words: {0} ({1})
+ Woorden: {0} ({1})
+
+
+
+ Document size is {0} bytes
+ Document grootte is {0} bytes
+
+
+
+ Words: {0} selected
+ Woorden: {0} geselecteerd
+
+
+
+ Character count: {0}
+ Aantal tekens: {0}
+
+
+
+ GuiDocEditHeader
+
+
+ Edit document meta
+ Document meta-gegevens bewerken
+
+
+
+ Search document
+ Doorzoek document
+
+
+
+ Toggle Focus Mode
+ Schakel focus modus in/uit
+
+
+
+ Close the document
+ Sluit het document
+
+
+
+ GuiDocEditSearch
+
+
+
+ Search
+ Zoek
+
+
+
+ Replace
+ Vervang
+
+
+
+ Case Sensitive
+ Hoofdlettergevoelig
+
+
+
+ Whole Words Only
+ Alleen Hele Woorden
+
+
+
+ RegEx Mode
+ RegEx Modus
+
+
+
+ Loop Search
+ Zoekopdracht Herhalen
+
+
+
+ Search Next File
+ Doorzoek Volgend Bestand
+
+
+
+ Preserve Case
+ Behoud Hoofd/Kleine letters
+
+
+
+ Close Search
+ Zoekopdracht Afsluiten
+
+
+
+ Find in current document
+ Zoeken in huidige document
+
+
+
+ Find and replace in current document
+ Zoek en vervang in huidig document
+
+
+
+ GuiDocEditor
+
+
+ The document you are trying to open is too big. The document size is {0} MB. The maximum size allowed is {1} MB.
+ Het document dat u probeert te openen is te groot. De documentgrootte is {0} MB. De maximaal toegestane grootte is {1} MB.
+
+
+
+ Opened Document: {0}
+ Geopend Document: {0}
+
+
+
+ The text you are trying to add is too big. The text size is {0} MB. The maximum size allowed is {1} MB.
+ De tekst die u probeert toe te voegen is te groot. De tekst is {0} MB. De maximaal toegestane grootte is {1} MB.
+
+
+
+ File Changed on Disk
+ Bestand Gewijzigd op Schijf
+
+
+
+ This document has been changed outside of novelWriter while it was open. Overwrite the file on disk?
+ Dit document is gewijzigd buiten de openstaande novelWriter. Het bestand op de schijf overschrijven?
+
+
+
+ Could not save document.
+ Kon document niet opslaan.
+
+
+
+ Saved Document: {0}
+ Document Opgeslagen: {0}
+
+
+
+ Spell checking requires the package PyEnchant. It does not appear to be installed.
+ Spellingscontrole vereist het pakket PyEnchant. Het lijkt niet geïnstalleerd te zijn.
+
+
+
+ Spell check complete
+ Spellingscontrole compleet
+
+
+
+ File Location
+ Bestands Locatie
+
+
+
+ The currently open file is saved in:
+ Het momenteel geopende bestand is opgeslagen in:
+
+
+
+ The document has grown too big and you cannot add more text to it. The maximum size of a single novelWriter document is {0} MB.
+ Het document is te groot geworden en u kunt er niet meer tekst aan toevoegen. De maximale grootte van een enkel novelWriter document is {0} MB.
+
+
+
+ Follow Tag
+ Volg Label
+
+
+
+ Cut
+ Knippen
+
+
+
+ Copy
+ Kopiëren
+
+
+
+ Paste
+ Plakken
+
+
+
+ Select All
+ Selecteer Alles
+
+
+
+ Select Word
+ Selecteer Woord
+
+
+
+ Select Paragraph
+ Selecteer Paragraaf
+
+
+
+ Spelling Suggestion(s)
+ Spelling Suggestie(s)
+
+
+
+ No Suggestions
+ Geen Suggesties
+
+
+
+ Add Word to Dictionary
+ Woord Toevoegen aan Woordenboek
+
+
+
+ Please select some text before calling replace quotes.
+ Selecteer a.u.b. een tekst voordat u vervang aanhalingstekens aanroept.
+
+
+
+ GuiDocMerge
+
+
+ Merge Documents
+ Documenten Samenvoegen
+
+
+
+ Documents to Merge
+ Documenten om samen te voegen
+
+
+
+ Drag and drop items to change the order.
+ Versleep items om de volgorde te wijzigen.
+
+
+
+ No source documents found. Nothing to do.
+ Geen brondocumenten gevonden. Niets te doen.
+
+
+
+ Failed to open document file.
+ Documentbestand openen mislukt.
+
+
+
+ No source folder selected. Nothing to do.
+ Geen bronmap geselecteerd. Niets te doen.
+
+
+
+ Internal error.
+ Interne fout.
+
+
+
+ Could not save document.
+ Kon document niet opslaan.
+
+
+
+ Element selected in the project tree must be a folder.
+ Element geselecteerd in de projectboom moet een map zijn.
+
+
+
+ GuiDocSplit
+
+
+
+ Split Document
+ Splits document
+
+
+
+ Document Headers
+ Document kopteksten
+
+
+
+ Select the maximum level to split into files.
+ Selecteer het maximale niveau om in bestanden op te splitsen.
+
+
+
+ Split on Header Level 1 (Title)
+ Splits op koptekst niveau 1 (Titel)
+
+
+
+ Split up to Header Level 2 (Chapter)
+ Opsplitsen tot kop niveau 2 (Hoofdstuk)
+
+
+
+ Split up to Header Level 3 (Scene)
+ Opsplitsen tot kop niveau 3 (Scène)
+
+
+
+ Split up to Header Level 4 (Section)
+ Opsplitsen tot kop niveau 4 (Sectie)
+
+
+
+ No source document selected. Nothing to do.
+ Geen brondocument geselecteerd. Niets te doen.
+
+
+
+ Could not parse source document.
+ Brondocument kan niet ontleden worden.
+
+
+
+ Failed to open document file.
+ Kon documentbestand niet openen.
+
+
+
+ No headers found. Nothing to do.
+ Geen koppen gevonden. Niets te doen.
+
+
+
+ Cannot add new folder for the document split. Maximum folder depth has been reached. Please move the file to another level in the project tree.
+ Kan geen nieuwe map toevoegen voor de splitsing van documenten. Maximale diepte van de map is bereikt. Verplaats het bestand naar een ander niveau in de projectstructuur.
+
+
+
+ The document will be split into {0} file(s) in a new folder. The original document will remain intact.
+ Het document zal worden opgesplitst in {0} bestand(en) in een nieuwe map. Het oorspronkelijke document blijft intact.
+
+
+
+ Continue with the splitting process?
+ Doorgaan met het splitsings-proces?
+
+
+
+ Could not save document.
+ Kon document niet opslaan.
+
+
+
+ Element selected in the project tree must be a file.
+ Het in de projectboom geselecteerde element moet een bestand zijn.
+
+
+
+ GuiDocViewFooter
+
+
+ Show/hide the references panel
+ Toon/verberg het referentiespaneel
+
+
+
+ Activate to freeze the content of the references panel when changing document
+ Activeer om de inhoud van het referentiespaneel te bevriezen bij het wijzigen van document
+
+
+
+ Show comments
+ Opmerkingen weergeven
+
+
+
+ Show synopsis comments
+ Synopsis opmerkingen weergeven
+
+
+
+ References
+ Referenties
+
+
+
+ Sticky
+ Vastpinnen
+
+
+
+ Comments
+ Opmerkingen
+
+
+
+ Synopsis
+ Synopsis
+
+
+
+ GuiDocViewHeader
+
+
+ Go backward
+ Ga achterwaarts
+
+
+
+ Go forward
+ Ga voorwaarts
+
+
+
+ Reload the document
+ Herlaad het document
+
+
+
+ Close the document
+ Sluit het document
+
+
+
+ GuiDocViewer
+
+
+ An error occurred while generating the preview.
+ Er is een fout opgetreden tijdens het genereren van het voorbeeld.
+
+
+
+ Could not find the reference for tag '{0}'. It either doesn't exist, or the index is out of date. The index can be updated from the Tools menu, or by pressing {1}.
+ Kon de verwijzing voor tag '{0}' niet vinden. Hij bestaat niet of de index is verouderd. De index kan worden bijgewerkt in het Hulpmiddelenmenu, of door op {1} te drukken.
+
+
+
+ Copy
+ Kopiëren
+
+
+
+ Select All
+ Selecteer alles
+
+
+
+ Select Word
+ Selecteer woord
+
+
+
+ Select Paragraph
+ Selecteer paragraaf
+
+
+
+ GuiItemDetails
+
+
+ Label
+ Label
+
+
+
+ Status
+ Status
+
+
+
+ Class
+ Klasse
+
+
+
+ Usage
+ Gebruik
+
+
+
+ Characters
+ Tekens
+
+
+
+ Words
+ Woorden
+
+
+
+ Paragraphs
+ Paragrafen
+
+
+
+ GuiItemEditor
+
+
+ Item Settings
+ Item Instellingen
+
+
+
+ Include when building project
+ Opnemen bij bouwen van project
+
+
+
+ Label
+ Label
+
+
+
+ Status
+ Status
+
+
+
+ Layout
+ Indeling
+
+
+
+ GuiMain
+
+
+ Project
+ Project
+
+
+
+ Novel
+ Roman
+
+
+
+ Project Details
+ Project details
+
+
+
+ Writing Statistics
+ Schrijf statistieken
+
+
+
+ Project Settings
+ Project instellingen
+
+
+
+ Editor
+ Tekstbewerker
+
+
+
+ Outline
+ Contour
+
+
+
+ You are running an untested development version of novelWriter. Please be careful when working on a live project and make sure you take regular backups.
+ Je gebruikt een ongeteste ontwikkelingsversie van novelWriter. Wees voorzichtig bij het werken aan een live project en zorg ervoor dat je regelmatige reservekopieën maakt.
+
+
+
+ novelWriter is ready ...
+ novelWriter is klaar ...
+
+
+
+ Cannot create a new project when another project is open.
+ Kan geen nieuw project maken als een ander project geopend is.
+
+
+
+ A project already exists in that location. Please choose another folder.
+ Er bestaat al een project op die locatie. Kies een andere map.
+
+
+
+ New project created ...
+ Nieuw project aangemaakt...
+
+
+
+ Close Project
+ Sluit project
+
+
+
+ Close the current project?
+ Sluit het huidige project?
+
+
+
+
+ Changes are saved automatically.
+ Wijzigingen worden automatisch opgeslagen.
+
+
+
+ Backup Project
+ Project reservekopie maken
+
+
+
+ Backup the current project?
+ Reservekopie maken van het huidige project?
+
+
+
+ The project was locked by the computer '{0}' ({1} {2}), last active on {3}.
+ Het project is vergrendeld door de computer '{0}' ({1} {2}), voor het laatst actief op {3}.
+
+
+
+ Project Locked
+ Project vergrendeld
+
+
+
+ The project is already open by another instance of novelWriter, and is therefore locked. Override lock and continue anyway?
+ Het project is al geopend door een andere instantie van novelWriter, en is daarom vergrendeld. Vergrendeling negeren en toch verder gaan?
+
+
+
+ Note: If the program or the computer previously crashed, the lock can safely be overridden. However, overriding it is not recommended if the project is open in another instance of novelWriter. Doing so may corrupt the project.
+ Opmerking: als het programma of de computer eerder is vastgelopen, kan de vergrendeling veilig worden genegeerd. Het wordt echter niet aanbevolen als het project open is in een andere instantie van novelWriter. Toch doen kan het project beschadigen.
+
+
+
+ The project index is outdated or broken. Rebuilding index.
+ De projectindex is verouderd of gebroken. De index wordt herbouwd.
+
+
+
+ Text files ({0})
+ Tekst bestanden ({0})
+
+
+
+ Markdown files ({0})
+ Markdown bestanden ({0})
+
+
+
+ novelWriter files ({0})
+ novelWriter bestanden ({0})
+
+
+
+ All files ({0})
+ Alle bestanden ({0})
+
+
+
+ Import File
+ Importeer bestand
+
+
+
+ Could not read file. The file must be an existing text file.
+ Kon het bestand niet lezen. Het bestand moet een bestaand tekst bestand zijn.
+
+
+
+ Please open a document to import the text file into.
+ Open a.u.b. een document om het tekst bestand in te importeren.
+
+
+
+ Import Document
+ Importeer document
+
+
+
+ Importing the file will overwrite the current content of the document. Do you want to proceed?
+ Het importeren van het bestand overschrijft de huidige inhoud van het document. Wilt u doorgaan?
+
+
+
+
+ Indexing: '{0}'
+ Indexeren: '{0}'
+
+
+
+ Unknown item
+ Onbekend item
+
+
+
+ Indexing completed in {0} ms
+ Indexeren voltooid in {0} ms
+
+
+
+ The project index has been successfully rebuilt.
+ De projectindex is succesvol opnieuw opgebouwd.
+
+
+
+ Information
+ Informatie
+
+
+
+ Warning
+ Waarschuwing
+
+
+
+ Error
+ Foutmelding
+
+
+
+ This is a bug!
+ Dit is een bug!
+
+
+
+ Internal Error
+ Interne Foutmelding
+
+
+
+ Exit
+ Afsluiten
+
+
+
+ Do you want to exit novelWriter?
+ Wil je novelWriter afsluiten?
+
+
+
+ GuiMainMenu
+
+
+ &Project
+ &Project
+
+
+
+ New Project
+ Nieuw project
+
+
+
+ Open Project
+ Open project
+
+
+
+ Save Project
+ Project opslaan
+
+
+
+ Close Project
+ Sluit project
+
+
+
+ Project Settings
+ Project instellingen
+
+
+
+ Project Details
+ Project details
+
+
+
+ Create Root Folder
+ Maak hoofdmap aan
+
+
+
+ Novel Root
+ Roman hoofdmap
+
+
+
+ Plot Root
+ Plot hoofdmap
+
+
+
+ Character Root
+ Personage hoofdmap
+
+
+
+ Location Root
+ Locatie hoofdmap
+
+
+
+ Timeline Root
+ Tijdslijn hoofdmap
+
+
+
+ Object Root
+ Object hoofdmap
+
+
+
+ Entity Root
+ Entiteit hoofdmap
+
+
+
+ Custom Root
+ Aangepaste hoofdmap
+
+
+
+ Archive Root
+ Archief hoofdmap
+
+
+
+ Create Folder
+ Map aanmaken
+
+
+
+ Edit Item
+ Item bewerken
+
+
+
+ Delete Item
+ Item verwijderen
+
+
+
+ Move Item Up
+ Verplaats item omhoog
+
+
+
+ Move Item Down
+ Verplaats item omlaag
+
+
+
+ Undo Last Move
+ Ongedaan maken laatste verplaatsing
+
+
+
+ Empty Trash
+ Leeg prullenbak
+
+
+
+ Exit
+ Afsluiten
+
+
+
+ &Document
+ &Document
+
+
+
+ New Document
+ Nieuw document
+
+
+
+ Open Document
+ Open document
+
+
+
+ Save Document
+ Document opslaan
+
+
+
+ Close Document
+ Sluit document
+
+
+
+ View Document
+ Document weergeven
+
+
+
+ Close Document View
+ Sluit document weergave
+
+
+
+ Show File Details
+ Toon bestandsdetails
+
+
+
+ Import Text from File
+ Tekst importeren uit bestand
+
+
+
+ Merge Folder to Document
+ Samenvoegen van map naar document
+
+
+
+ Split Document to Folder
+ Document naar map splitsen
+
+
+
+ &Edit
+ &Bewerken
+
+
+
+ Undo
+ Ongedaan maken
+
+
+
+ Redo
+ Opnieuw uitvoeren
+
+
+
+ Cut
+ Knippen
+
+
+
+ Copy
+ Kopiëren
+
+
+
+ Paste
+ Plakken
+
+
+
+ Select All
+ Selecteer alles
+
+
+
+ Select Paragraph
+ Selecteer paragraaf
+
+
+
+ &View
+ &Weergave
+
+
+
+ Go to Project Tree
+ Ga naar projectboom
+
+
+
+ Go to Document Editor
+ Ga naar Documentbewerker
+
+
+
+ Go to Document Viewer
+ Ga naar documentweergave
+
+
+
+ Go to Outline
+ Ga naar omlijning
+
+
+
+ Navigate Backward
+ Navigeer achteruit
+
+
+
+ Navigate Forward
+ Navigeer vooruit
+
+
+
+ Focus Mode
+ Focus modus
+
+
+
+ Full Screen Mode
+ Volledig scherm modus
+
+
+
+ &Insert
+ &Invoegen
+
+
+
+ Dashes
+ Streepjes
+
+
+
+ Short Dash
+ Korte streep
+
+
+
+ Long Dash
+ Lange streep
+
+
+
+ Horizontal Bar
+ Horizontale lijn
+
+
+
+ Figure Dash
+ Figuur streep
+
+
+
+ Quote Marks
+ Aanhalingstekens
+
+
+
+ Left Single Quote
+ Enkel Aanhalingsteken Links
+
+
+
+ Right Single Quote
+ Enkel Aanhalingsteken Rechts
+
+
+
+ Left Double Quote
+ Dubbel Aanhalingsteken Links
+
+
+
+ Right Double Quote
+ Dubbele Aanhalingstekens Rechts
+
+
+
+ Alternative Apostrophe
+ Alternatieve Apostrof
+
+
+
+ General Punctuation
+ Algemene Leestekens
+
+
+
+ Ellipsis
+ Ellips
+
+
+
+ Prime
+ Priem
+
+
+
+ Double Prime
+ Dubbele priem
+
+
+
+ White Spaces
+ Witruimtes
+
+
+
+ Non-Breaking Space
+ Vaste spatie
+
+
+
+ Thin Space
+ Dunne spatie
+
+
+
+ Thin Non-Breaking Space
+ Dunne vaste spatie
+
+
+
+ Other Symbols
+ Andere symbolen
+
+
+
+ List Bullet
+ Lijst opsommingsteken
+
+
+
+ Hyphen Bullet
+ Koppelteken opsommingsteken
+
+
+
+ Flower Mark
+ Bloem markering
+
+
+
+ Per Mille
+ Per mille
+
+
+
+ Degree Symbol
+ Graden symbool
+
+
+
+ Minus Sign
+ Minus teken
+
+
+
+ Times Sign
+ Vermenigvuldigingsteken
+
+
+
+ Division Sign
+ Deelteken
+
+
+
+ Tags and References
+ Tags en Referenties
+
+
+
+ Page Break and Space
+ Pagina-einde en Spatie
+
+
+
+ Page Break
+ Nieuwe pagina
+
+
+
+ Vertical Space (Single)
+ Verticale spatie (enkel)
+
+
+
+ Vertical Space (Multi)
+ Verticale spatie (multi)
+
+
+
+ &Format
+ Opmaak
+
+
+
+ Emphasis
+ Nadruk
+
+
+
+ Strong Emphasis
+ Sterke nadruk
+
+
+
+ Strikethrough
+ Doorhalen
+
+
+
+ Wrap Double Quotes
+ Dubbele aanhalingstekens omwikkelen
+
+
+
+ Wrap Single Quotes
+ Enkel aanhalingsteken omwikkelen
+
+
+
+ Header 1 (Partition)
+ Kop 1 (Partitie)
+
+
+
+ Header 2 (Chapter)
+ Kop 2 (Hoofdstuk)
+
+
+
+ Header 3 (Scene)
+ Kop 3 (Scène)
+
+
+
+ Header 4 (Section)
+ Kop 4 (Sectie)
+
+
+
+ Novel Title
+ Roman titel
+
+
+
+ Unnumbered Chapter
+ Ongenummerd hoofdstuk
+
+
+
+ Align Left
+ Links uitlijnen
+
+
+
+ Align Centre
+ Centreren
+
+
+
+ Align Right
+ Rechts uitlijnen
+
+
+
+ Indent Left
+ Links inspringen
+
+
+
+ Indent Right
+ Rechts inspringen
+
+
+
+ Toggle Comment
+ Opmerking in-/uitschakelen
+
+
+
+ Remove Block Format
+ Verwijder blokformaat
+
+
+
+ Convert Single Quotes
+ Converteer enkele aanhalingstekens
+
+
+
+ Convert Double Quotes
+ Converteer dubbele aanhalingstekens
+
+
+
+ Remove In-Paragraph Breaks
+ Verwijder in-paragraaf onderbrekingen
+
+
+
+ &Search
+ &Zoeken
+
+
+
+ Find
+ Vinden
+
+
+
+ Replace
+ Vervangen
+
+
+
+ Find Next
+ Volgende zoeken
+
+
+
+ Find Previous
+ Vorige zoeken
+
+
+
+ Replace Next
+ Vervang volgende
+
+
+
+ &Tools
+ &Hulpmiddelen
+
+
+
+ Check Spelling
+ Spelling controleren
+
+
+
+ Re-Run Spell Check
+ Spellingscontrole opnieuw uitvoeren
+
+
+
+ Project Word List
+ Project woordenlijst
+
+
+
+ Rebuild Index
+ Index opnieuw opbouwen
+
+
+
+ Rebuild Outline
+ Herbouw omlijning
+
+
+
+ Auto-Update Outline
+ Auto-update omlijning
+
+
+
+ Backup Project
+ Project back-up maken
+
+
+
+ Build Novel Project
+ Bouw Roman Project
+
+
+
+ Writing Statistics
+ Schrijf Statistieken
+
+
+
+ Preferences
+ Voorkeuren
+
+
+
+ &Help
+ &Help
+
+
+
+ About novelWriter
+ Over novelWriter
+
+
+
+ About Qt5
+ Over Qt5
+
+
+
+ User Manual (Online)
+ Gebruikershandleiding (Online)
+
+
+
+ User Manual (PDF)
+ Gebruikershandleiding (PDF)
+
+
+
+ Report an Issue (GitHub)
+ Meld een probleem (GitHub)
+
+
+
+ Ask a Question (GitHub)
+ Stel een vraag (GitHub)
+
+
+
+ The novelWriter Website
+ De novelWriter website
+
+
+
+ Check for New Release
+ Controleer op nieuwe release
+
+
+
+ GuiMainStatus
+
+
+
+ None
+ Geen
+
+
+
+ Editor
+ Tekstverwerker
+
+
+
+ Project
+ Project
+
+
+
+ Session Time
+ Sessieduur
+
+
+
+ Words: {0} ({1})
+ Woorden: {0} ({1})
+
+
+
+ Project word count (session change)
+ Aantal projectwoorden (verandering sessie)
+
+
+
+ Novel word count (session change)
+ Roman woordtelling (sessie verandering)
+
+
+
+ GuiNovelTree
+
+
+ Novel Outline
+ Roman omlijning
+
+
+
+ Words
+ Woorden
+
+
+
+ POV
+ Perspectief
+
+
+
+ Section title
+ Sectietitel
+
+
+
+ Word count
+ Aantal woorden
+
+
+
+ Point-of-view character
+ Point-of-view karakter
+
+
+
+ GuiOutlineDetails
+
+
+
+
+
+ Title
+ Titel
+
+
+
+ Chapter
+ Hoofdstuk
+
+
+
+ Scene
+ Scène
+
+
+
+ Section
+ Sectie
+
+
+
+ Document
+ Document
+
+
+
+ Status
+ Status
+
+
+
+ Characters
+ Tekens
+
+
+
+ Words
+ Woorden
+
+
+
+ Paragraphs
+ Paragrafen
+
+
+
+ Synopsis
+ Synopsis
+
+
+
+ Title Details
+ Titel details
+
+
+
+ Reference Tags
+ Referentie tags
+
+
+
+ GuiOutlineHeaderMenu
+
+
+ Select Columns
+ Selecteer kolommen
+
+
+
+ GuiPreferences
+
+
+ Preferences
+ Voorkeuren
+
+
+
+ General
+ Algemeen
+
+
+
+ Projects
+ Projecten
+
+
+
+ Documents
+ Documenten
+
+
+
+ Editor
+ Tekstverwerker
+
+
+
+ Highlighting
+ Markeren
+
+
+
+ Automation
+ Automatisering
+
+
+
+ Quotes
+ Aanhalingstekens
+
+
+
+ Some changes will not be applied until novelWriter has been restarted.
+ Sommige wijzigingen zullen niet worden toegepast totdat novelWriter opnieuw is gestart.
+
+
+
+ GuiPreferencesAutomation
+
+
+ Automatic Features
+ Automatische Functies
+
+
+
+ Auto-select word under cursor
+ Automatisch woord onder cursor selecteren
+
+
+
+ Apply formatting to word under cursor if no selection is made.
+ Opmaak toepassen op woord onder de cursor als er geen selectie is gemaakt.
+
+
+
+ Auto-replace text as you type
+ Automatisch tekst vervangen terwijl u typt
+
+
+
+ Allow the editor to replace symbols as you type.
+ Sta de editor toe om symbolen te vervangen terwijl u typt.
+
+
+
+ Replace as You Type
+ Vervang Terwijl U Typt
+
+
+
+ Auto-replace single quotes
+ Automatisch enkele aanhalingstekens vervangen
+
+
+
+
+ Try to guess which is an opening or a closing quote.
+ Probeer te raden wat een openend of afsluitend aanhalingsteken is.
+
+
+
+ Auto-replace double quotes
+ Automatisch dubbele aanhalingstekens vervangen
+
+
+
+ Auto-replace dashes
+ Automatisch streepjes vervangen
+
+
+
+ Double and triple hyphens become short and long dashes.
+ Dubbele en drievoudige koppeltekens worden korte en lange streepjes.
+
+
+
+ Auto-replace dots
+ Automatisch stippen vervangen
+
+
+
+ Three consecutive dots become ellipsis.
+ Drie opeenvolgende stippen worden ellips.
+
+
+
+ Automatic Padding
+ Automatische Opvulling
+
+
+
+ Insert non-breaking space before
+ Vaste spatie invoegen voor
+
+
+
+ Automatically add space before any of these symbols.
+ Voeg automatisch een spatie toe voor één van deze symbolen.
+
+
+
+ Insert non-breaking space after
+ Vaste spatie invoegen na
+
+
+
+ Automatically add space after any of these symbols.
+ Voeg automatisch een spatie toe na één van deze symbolen.
+
+
+
+ Use thin space instead
+ Gebruik dunne spatie in plaats van
+
+
+
+ Inserts a thin space instead of a regular space.
+ Voegt een dunne spatie toe in plaats van een normale spatie.
+
+
+
+ GuiPreferencesDocuments
+
+
+ Text Style
+ Tekst Stijl
+
+
+
+ Font family
+ Lettertype familie
+
+
+
+
+
+
+ Applies to both document editor and viewer.
+ Van toepassing op zowel de documentbewerker als de kijker.
+
+
+
+ Font size
+ Lettertypegrootte
+
+
+
+ pt
+ pt
+
+
+
+ Text Flow
+ Tekst Flow
+
+
+
+ Maximum text width in "Normal Mode"
+ Maximale tekstbreedte in "Normale Modus"
+
+
+
+ Set to 0 to disable this feature.
+ Stel in op 0 om deze functie uit te schakelen.
+
+
+
+
+
+
+ px
+ px
+
+
+
+ Maximum text width in "Focus Mode"
+ Maximale tekstbreedte in "Focus Modus"
+
+
+
+ The maximum width cannot be disabled.
+ De maximale breedte kan niet worden uitgeschakeld.
+
+
+
+ Hide document footer in "Focus Mode"
+ Verberg document voettekst in "Focus Modus"
+
+
+
+ Hide the information bar in the document editor.
+ Verberg de informatiebalk in de documentbewerker.
+
+
+
+ Justify the text margins
+ De tekstmarges uitvullen
+
+
+
+ Minimum text margin
+ Minimale tekstmarge
+
+
+
+ Tab width
+ Tab breedte
+
+
+
+ The width of a tab key press in the editor and viewer.
+ De breedte van een tab teken in de tekstbewerker en kijker.
+
+
+
+ GuiPreferencesEditor
+
+
+ Spell Checking
+ Spellingscontrole
+
+
+
+ None
+ Geen
+
+
+
+ Not installed
+ Niet geïnstalleerd
+
+
+
+ Spell check language
+ Taal voor spellingscontrole
+
+
+
+ Available languages are determined by your system.
+ Beschikbare talen worden bepaald door uw systeem.
+
+
+
+ Big document limit
+ Groot document limiet
+
+
+
+ Full spell checking is disabled above this limit.
+ Volledige spellingcontrole is uitgeschakeld boven dit limiet.
+
+
+
+ kB
+ kB
+
+
+
+ Word Count
+ Woord Telling
+
+
+
+ Word count interval
+ Woord tellings interval
+
+
+
+ seconds
+ seconden
+
+
+
+ Include project notes in status bar word count
+ Project notities opnemen in de statusbalk woord telling
+
+
+
+ Writing Guides
+ Schrijf Hulpjes
+
+
+
+ Show tabs and spaces
+ Tabs en spaties weergeven
+
+
+
+ Show line endings
+ Regeleindes weergeven
+
+
+
+ Scroll Behaviour
+ Scroll Gedrag
+
+
+
+ Scroll past end of the document
+ Scroll voorbij het einde van het document
+
+
+
+ Set to 0 to disable this feature.
+ Stel in op 0 om deze functie uit te schakelen.
+
+
+
+ lines
+ regels
+
+
+
+ Typewriter style scrolling when you type
+ Schrijfmachine stijl scrollen bij het typen
+
+
+
+ Keeps the cursor at a fixed vertical position.
+ Houd de cursor op een vaste verticale positie.
+
+
+
+ Minimum position for Typewriter scrolling
+ Minimumpositie voor Schrijfmachine scrollen
+
+
+
+ Percentage of the editor height from the top.
+ Percentage van de tekstverwerker hoogte vanaf de bovenkant.
+
+
+
+ GuiPreferencesGeneral
+
+
+ Look and Feel
+ Look and Feel
+
+
+
+ Main GUI language
+ Hoofdtaal van GUI
+
+
+
+
+
+
+
+ Requires restart.
+ Vereist herstart.
+
+
+
+ Main GUI theme
+ Hoofd GUI thema
+
+
+
+ Main icon theme
+ Hoofd pictogrammen thema
+
+
+
+ Font family
+ Lettertype familie
+
+
+
+ Font size
+ Lettertypegrootte
+
+
+
+ pt
+ pt
+
+
+
+ GUI Settings
+ GUI Instellingen
+
+
+
+ Emphasise partition and chapter labels
+ Partitie en hoofdstuk labels benadrukken
+
+
+
+ Makes them stand out in the project tree.
+ Laat ze opvallen in de projectboom.
+
+
+
+ Show full path in document header
+ Volledig pad in document kop weergeven
+
+
+
+ Add the parent folder names to the header.
+ Voeg de bovenliggende mapnamen toe aan de kop.
+
+
+
+ Hide vertical scroll bars in main windows
+ Verticale schuifbalken in hoofdvensters verbergen
+
+
+
+
+ Scrolling available with mouse wheel and keys only.
+ Scrollen alleen beschikbaar met muiswiel en toetsen.
+
+
+
+ Hide horizontal scroll bars in main windows
+ Verberg horizontale schuifbalken in hoofdvensters
+
+
+
+ GuiPreferencesProjects
+
+
+ Automatic Save
+ Automatisch Opslaan
+
+
+
+ Save document interval
+ Document opslag interval
+
+
+
+ How often the document is automatically saved.
+ Hoe vaak het document automatisch wordt opgeslagen.
+
+
+
+
+ seconds
+ seconden
+
+
+
+ Save project interval
+ Project opslag interval
+
+
+
+ How often the project is automatically saved.
+ Hoe vaak het project automatisch wordt opgeslagen.
+
+
+
+ Project Backup
+ Project Reservekopie
+
+
+
+ Browse
+ Blader
+
+
+
+ Backup storage location
+ Opslaglocatie voor reservekopie
+
+
+
+
+ Path: {0}
+ Pad: {0}
+
+
+
+ Run backup when the project is closed
+ Reservekopie maken wanneer het project wordt gesloten
+
+
+
+ Can be overridden for individual projects in Project Settings.
+ Kan voor individuele projecten overschreven worden in Projectinstellingen.
+
+
+
+ Ask before running backup
+ Vraag voor het maken van een reservekopie
+
+
+
+ If off, backups will run in the background.
+ Indien uit, worden reservekopieën op de achtergrond gemaakt.
+
+
+
+ Session Timer
+ Sessie Timer
+
+
+
+ Pause the session timer when not writing
+ De sessie timer pauzeren wanneer niet geschreven wordt
+
+
+
+ Also pauses when the application window does not have focus.
+ Pauzeert ook wanneer het toepassingsvenster geen focus heeft.
+
+
+
+ Editor inactive time before pausing timer
+ Inactieve tekstbewerker duur voordat timer wordt gepauzeerd
+
+
+
+ User activity includes typing and changing the content.
+ Gebruikersactiviteit omvat typen en het wijzigen van de inhoud.
+
+
+
+ minutes
+ minuten
+
+
+
+ Backup Directory
+ Reservekopie map
+
+
+
+ GuiPreferencesQuotes
+
+
+ Quotation Style
+ Citeer Stijl
+
+
+
+ Single quote open style
+ Enkel aanhalingsteken open stijl
+
+
+
+ The symbol to use for a leading single quote.
+ Het symbool om te gebruiken voor een leidend enkel aanhalingsteken.
+
+
+
+ Single quote close style
+ Enkel aanhalingsteken sluit stijl
+
+
+
+ The symbol to use for a trailing single quote.
+ Het symbool om te gebruiken voor een afsluitend enkel aanhalingsteken.
+
+
+
+ Double quote open style
+ Dubbele aanhalingsteken open stijl
+
+
+
+ The symbol to use for a leading double quote.
+ Het symbool om te gebruiken voor een leidend dubbel aanhalingsteken.
+
+
+
+ Double quote close style
+ Dubbel aanhalingsteken sluit stijl
+
+
+
+ The symbol to use for a trailing double quote.
+ Het symbool om te gebruiken voor een afsluitend dubbel aanhalingsteken.
+
+
+
+ GuiPreferencesSyntax
+
+
+ Highlighting Theme
+ Markeer thema
+
+
+
+ Highlighting theme
+ Markeer thema
+
+
+
+ Colour theme for the editor and viewer.
+ Kleur thema voor de bewerker en kijker.
+
+
+
+ Quotes & Dialogue
+ Aanhalingstekens & Dialoog
+
+
+
+ Highlight text wrapped in quotes
+ Markeer tekst verpakt in aanhalingstekens
+
+
+
+
+
+ Applies to the document editor only.
+ Alleen van toepassing op de documentbewerker.
+
+
+
+ Allow open-ended single quotes
+ Toestaan van open einde enkele aanhalingstekens
+
+
+
+ Highlight single-quoted line with no closing quote.
+ Markeer regel zonder afsluitend enkel aanhalingsteken.
+
+
+
+ Allow open-ended double quotes
+ Toestaan van open einde dubbele aanhalingstekens
+
+
+
+ Highlight double-quoted line with no closing quote.
+ Markeer regel zonder afsluitend dubbel aanhalingsteken.
+
+
+
+ Text Emphasis
+ Tekst nadruk
+
+
+
+ Add highlight colour to emphasised text
+ Voeg markeerkleur toe aan geaccentueerde tekst
+
+
+
+ Text Errors
+ Tekst Foutmeldingen
+
+
+
+ Highlight multiple spaces
+ Meerdere spaties markeren
+
+
+
+ GuiProjectDetails
+
+
+ Project Details
+ Project Details
+
+
+
+ Overview
+ Overzicht
+
+
+
+ Contents
+ Inhoud
+
+
+
+ GuiProjectDetailsContents
+
+
+ Title
+ Titel
+
+
+
+ Words
+ Woorden
+
+
+
+ Pages
+ Pagina's
+
+
+
+ Page
+ Pagina
+
+
+
+ Progress
+ Voortgang
+
+
+
+ Typical word count for a 5 by 8 inch book page with 11 pt font is 350.
+ Typische woordtelling voor een 5 bij 8 inch boek pagina met 11 pt lettertype is 350.
+
+
+
+ Start counting page numbers from this page.
+ Begin met het tellen van paginanummers vanaf deze pagina.
+
+
+
+ Assume a new chapter or partition always start on an odd numbered page.
+ Neem aan dat een nieuw hoofdstuk of partitie altijd op een oneven genummerde pagina begint.
+
+
+
+ Words per page
+ Woorden per pagina
+
+
+
+ Count pages from
+ Pagina's tellen vanaf
+
+
+
+ Clear double pages
+ Dubbele pagina's wissen
+
+
+
+ Table of Contents
+ Inhoudsopgave
+
+
+
+ END
+ EINDE
+
+
+
+ Untitled
+ Naamloos
+
+
+
+ GuiProjectDetailsMain
+
+
+ Working Title: {0}
+ Werktitel: {0}
+
+
+
+ By {0}
+ Door {0}
+
+
+
+ Words
+ Woorden
+
+
+
+ Chapters
+ Hoofdstukken
+
+
+
+ Scenes
+ Scènes
+
+
+
+ Revisions
+ Revisies
+
+
+
+ Editing Time
+ Bewerk tijd
+
+
+
+ Path
+ Pad
+
+
+
+ GuiProjectEditMain
+
+
+ Project Settings
+ Project Instellingen
+
+
+
+ Working title
+ Werk titel
+
+
+
+ Should be set only once.
+ Mag slechts één keer worden ingesteld.
+
+
+
+ Novel title
+ Roman titel
+
+
+
+ Change whenever you want!
+ Verander wanneer je maar wilt!
+
+
+
+ Author(s)
+ Auteur(s)
+
+
+
+ One name per line.
+ Eén naam per regel.
+
+
+
+ Default
+ Standaard
+
+
+
+ Spell check language
+ Taal voor spellingscontrole
+
+
+
+
+ Overrides main preferences.
+ Overschrijft de hoofd voorkeuren.
+
+
+
+ No backup on close
+ Geen back-up bij sluiten
+
+
+
+ GuiProjectEditReplace
+
+
+ Text Replace List for Preview and Export
+ Tekst Vervang Lijst voor Voorbeeld en Export
+
+
+
+ Keyword
+ Sleutelwoord
+
+
+
+ Replace With
+ Vervang door
+
+
+
+ Select item to edit
+ Selecteer te bewerken item
+
+
+
+ Save
+ Opslaan
+
+
+
+ GuiProjectEditStatus
+
+
+ Novel File Status Levels
+ Roman Bestand Status Niveaus
+
+
+
+ Note File Importance Levels
+ Notitie Bestand Import Niveaus
+
+
+
+ Label
+ Label
+
+
+
+ Usage
+ Gebruik
+
+
+
+ Select item to edit
+ Selecteer te bewerken item
+
+
+
+ Colour
+ Kleur
+
+
+
+ Save
+ Opslaan
+
+
+
+ Select Colour
+ Selecteer kleur
+
+
+
+ New Item
+ Nieuw item
+
+
+
+ Cannot delete a status item that is in use.
+ Kan status item dat in gebruik is niet verwijderen.
+
+
+
+ Not in use
+ Niet in gebruik
+
+
+
+ Used once
+ Eenmalig gebruikt
+
+
+
+ Used by {0} items
+ Gebruikt door {0} items
+
+
+
+ GuiProjectLoad
+
+
+
+ Open Project
+ Open Project
+
+
+
+ Working Title
+ Werk titel
+
+
+
+ Words
+ Woorden
+
+
+
+ Last Opened
+ Laatst geopend
+
+
+
+ Recently Opened Projects
+ Recent Geopende Projecten
+
+
+
+ Path
+ Pad
+
+
+
+ New
+ Nieuw
+
+
+
+ Remove
+ Verwijder
+
+
+
+ novelWriter Project File ({0})
+ novelWriter Projectbestand ({0})
+
+
+
+ All files ({0})
+ Alle bestanden ({0})
+
+
+
+ Remove Entry
+ Vermelding verwijderen
+
+
+
+ Remove '{0}' from the recent projects list? The project files will not be deleted.
+ '{0}' uit de lijst met recente projecten verwijderen? De project bestanden zullen niet worden verwijderd.
+
+
+
+ GuiProjectSettings
+
+
+ Project Settings
+ Project Instellingen
+
+
+
+ Settings
+ Instellingen
+
+
+
+ Status
+ Status
+
+
+
+ Importance
+ Belangrijkheid
+
+
+
+ Auto-Replace
+ Auto-Vervang
+
+
+
+ GuiProjectTree
+
+
+ Project Tree
+ Project Boom
+
+
+
+ Words
+ Woorden
+
+
+
+ Item label
+ Item label
+
+
+
+ Word count
+ Aantal woorden
+
+
+
+ Include in build
+ Opnemen in bouw
+
+
+
+ Item status
+ Item status
+
+
+
+ Please select a valid location in the tree to add the document.
+ Selecteer een geldige locatie in de boomstructuur om het document aan toe te voegen.
+
+
+
+ Please select a valid location in the tree to add the folder.
+ Selecteer een geldige locatie in de boomstructuur om de map aan toe te voegen.
+
+
+
+
+ Did not find anywhere to add the file or folder!
+ Kon geen plek vinden om het bestand of de map aan toe te voegen!
+
+
+
+ Cannot add new files or folders to the Trash folder.
+ Kan geen nieuwe bestanden of mappen toevoegen aan de Prullenbak map.
+
+
+
+ New File
+ Nieuw bestand
+
+
+
+ Cannot add new folder to this item. Maximum folder depth has been reached.
+ Kan geen nieuwe map toevoegen aan dit item. Maximum map diepte is bereikt.
+
+
+
+ New Folder
+ Nieuwe map
+
+
+
+ There is currently no Trash folder in this project.
+ Er is momenteel geen Prullenbak map in dit project.
+
+
+
+ The Trash folder is already empty.
+ De Prullenbak is al leeg.
+
+
+
+ Empty Trash
+ Prullenbak legen
+
+
+
+ Permanently delete {0} file(s) from Trash?
+ {0} bestand(en) permanent verwijderen uit de prullenbak?
+
+
+
+
+ Delete File
+ Verwijder bestand
+
+
+
+ Permanently delete file '{0}'?
+ Bestand '{0}' permanent verwijderen ?
+
+
+
+ Could not delete document file.
+ Kon documentbestand niet verwijderen.
+
+
+
+ Move file '{0}' to Trash?
+ Verplaats bestand '{0}' naar prullenbak?
+
+
+
+ Cannot delete folder. It is not empty. Recursive deletion is not supported. Please delete the content first.
+ Kan de map niet verwijderen. Het is niet leeg. Recursief verwijderen wordt niet ondersteund. Verwijder eerst de inhoud.
+
+
+
+ Cannot delete root folder. It is not empty. Recursive deletion is not supported. Please delete the content first.
+ Kan de hoofdmap niet verwijderen. Het is niet leeg. Recursieve verwijdering wordt niet ondersteund. Verwijder eerst de inhoud.
+
+
+
+
+ The item cannot be moved to that location.
+ Het item kan niet worden verplaatst naar die locatie.
+
+
+
+ There is nowhere to add item with name '{0}'.
+ Er is geen plek om item toe te voegen met de naam '{0}'.
+
+
+
+ GuiProjectTreeMenu
+
+
+ Edit Project Item
+ Bewerk projectitem
+
+
+
+ Open Document
+ Open document
+
+
+
+ View Document
+ Document weergeven
+
+
+
+ Toggle Included Flag
+ Toggle inbegrepen vlag
+
+
+
+ New File
+ Nieuw bestand
+
+
+
+ New Folder
+ Nieuwe map
+
+
+
+ Delete Item
+ Item verwijderen
+
+
+
+ Empty Trash
+ Leeg prullenbak
+
+
+
+ Move Item Up
+ Verplaats item omhoog
+
+
+
+ Move Item Down
+ Verplaats item omlaag
+
+
+
+ GuiUpdates
+
+
+ Check for Updates
+ Controleren op updates
+
+
+
+ Current Release
+ Huidige versie
+
+
+
+
+ novelWriter {0} released on {1}
+ novelWriter {0} uitgebracht op {1}
+
+
+
+ Latest Release
+ Nieuwste versie
+
+
+
+ Checking ...
+ Wordt gecontroleerd...
+
+
+
+ Download: {0}
+ Download: {0}
+
+
+
+ GuiWordList
+
+
+
+ Project Word List
+ Project woordenlijst
+
+
+
+ Cannot add a blank word.
+ Kan geen blanco woord toevoegen.
+
+
+
+ The word '{0}' is already in the word list.
+ Het woord '{0}' staat al op de woordenlijst.
+
+
+
+ GuiWritingStats
+
+
+ Writing Statistics
+ Schrijf Statistieken
+
+
+
+ Session Start
+ Sessie start
+
+
+
+ Length
+ Lengte
+
+
+
+ Idle
+ Inactief
+
+
+
+ Words
+ Woorden
+
+
+
+ Histogram
+ Histogram
+
+
+
+ Sum Totals
+ Som totalen
+
+
+
+ Total Time:
+ Totale tijd:
+
+
+
+ Idle Time:
+ Inactief tijd:
+
+
+
+ Filtered Time:
+ Gefilterde tijd:
+
+
+
+ Novel Word Count:
+ Roman woord telling:
+
+
+
+ Notes Word Count:
+ Notities woord telling:
+
+
+
+ Total Word Count:
+ Totaal woord telling:
+
+
+
+ Filters
+ Filters
+
+
+
+ Count novel files
+ Roman bestanden meetellen
+
+
+
+ Count note files
+ Notitiebestanden tellen
+
+
+
+ Hide zero word count
+ Verberg nul woorden aantal
+
+
+
+ Hide negative word count
+ Negatieve woordtelling verbergen
+
+
+
+ Group entries by day
+ Vermeldingen groeperen per dag
+
+
+
+ Show idle time
+ Inactieve tijd weergeven
+
+
+
+ Word count cap for the histogram
+ Woorden tellingslimiet voor het histogram
+
+
+
+ Save As
+ Opslaan als
+
+
+
+ JSON Data File (.json)
+ JSON gegevensbestand (.json)
+
+
+
+ CSV Data File (.csv)
+ CSV-gegevensbestand (.csv)
+
+
+
+ JSON Data File
+ JSON gegevensbestand
+
+
+
+ CSV Data File
+ CSV-gegevensbestand
+
+
+
+ Save Data As
+ Gegevens opslaan als
+
+
+
+ {0} file successfully written to:
+ {0} bestand succesvol geschreven naar:
+
+
+
+ Failed to write {0} file.
+ Schrijven van {0} bestand mislukt.
+
+
+
+ Failed to read session log file.
+ Kon sessie log bestand niet lezen.
+
+
+
+ NWProject
+
+
+ Duplicate root item detected.
+ Duplicaat root item gedetecteerd.
+
+
+
+
+ New
+ Nieuw
+
+
+
+ Note
+ Notitie
+
+
+
+ Draft
+ Concept
+
+
+
+ Finished
+ Voltooid
+
+
+
+ Minor
+ Klein
+
+
+
+ Major
+ Groot
+
+
+
+ Main
+ Hoofd
+
+
+
+ New Project
+ Nieuw Project
+
+
+
+ By
+ Door
+
+
+
+
+ Novel
+ Roman
+
+
+
+ Plot
+ Plot
+
+
+
+ Characters
+ Personages
+
+
+
+ World
+ Wereld
+
+
+
+
+ Title Page
+ Titel pagina
+
+
+
+
+
+ New Chapter
+ Nieuw hoofdstuk
+
+
+
+
+ New Scene
+ Nieuwe scène
+
+
+
+ Chapter {0}
+ Hoofdstuk {0}
+
+
+
+
+ Scene {0}
+ Scène {0}
+
+
+
+ File not found: {0}
+ Bestand niet gevonden: {0}
+
+
+
+
+ Failed to parse project xml.
+ Parsen van project xml mislukt.
+
+
+
+ Attempting to open backup project file instead.
+ Poging om in plaats daarvan het reservekopiebestand van het project te openen.
+
+
+
+
+ Unknown
+ Onbekend
+
+
+
+ Project file does not appear to be a novelWriterXML file.
+ Projectbestand lijkt geen novelWriter XML-bestand te zijn.
+
+
+
+ Unknown or unsupported novelWriter project file format. The project cannot be opened by this version of novelWriter. The file was saved with novelWriter version {0}.
+ Onbekend of niet ondersteund bestandsformaat van novelWriter. Het project kan niet worden geopend door deze versie van novelWriter. Het bestand was opgeslagen met versie {0} van novelWriter.
+
+
+
+ File Version
+ Bestands versie
+
+
+
+ The file format of your project is about to be updated. If you proceed, older versions of novelWriter will no longer be able to open this project. Continue?
+ De bestandsindeling van uw project zal worden bijgewerkt. Als u doorgaat, kunnen oudere versies van novelWriter dit project niet meer openen. Doorgaan?
+
+
+
+ Version Conflict
+ Versie conflict
+
+
+
+ This project was saved by a newer version of novelWriter, version {0}. This is version {1}. If you continue to open the project, some attributes and settings may not be preserved, but the overall project should be fine. Continue opening the project?
+ Dit project was aangemaakt door een nieuwere versie van novelWriter, versie {0}. Dit is versie {1}. Als je het project blijft openen, kunnen sommige kenmerken en instellingen niet worden behouden, maar over het algemeen moet het project goed zijn. Doorgaan met het openen van het project?
+
+
+
+ Opened Project: {0}
+ Geopend project: {0}
+
+
+
+ Project path not set, cannot save project.
+ Projectpad niet ingesteld, project kan niet worden opgeslagen.
+
+
+
+
+ Failed to save project.
+ Opslaan project mislukt.
+
+
+
+ Saved Project: {0}
+ Project opgeslagen: {0}
+
+
+
+ Backing up project ...
+ Project back-uppen...
+
+
+
+ Cannot backup project because no valid backup path is set. Please set a valid backup location in Preferences.
+ Kan geen back-up maken van project omdat er geen geldig backup pad is ingesteld. Stel een geldige back-up locatie in in Voorkeuren.
+
+
+
+ Cannot backup project because no project name is set. Please set a Working Title in Project Settings.
+ Kan geen back-up maken van een project omdat er geen projectnaam is ingesteld. Stel een werktitel in bij Projectinstellingen.
+
+
+
+ Could not create backup folder.
+ Kan de back-up map niet maken.
+
+
+
+ Cannot backup project because the backup path is within the project folder to be backed up. Please choose a different backup path in Preferences.
+ Kan geen back-up maken van het project omdat het back-up pad zich in de projectmap bevindt. Kies een ander backup pad in Voorkeuren.
+
+
+
+ Backup from {0}
+ Reservekopie van {0}
+
+
+
+ Backup archive file written to: {0}
+ Reservekopie archief bestand weggeschreven naar: {0}
+
+
+
+ Could not write backup archive.
+ Kon reservekopie archief niet wegschrijven.
+
+
+
+ Project backed up to '{0}'
+ Project reservekopie gemaakt naar '{0}'
+
+
+
+
+ Failed to create a new example project.
+ Aanmaken van een nieuw voorbeeldproject is mislukt.
+
+
+
+ Failed to create a new example project. Could not find the necessary files. They seem to be missing from this installation.
+ Aanmaken van een nieuw voorbeeldproject is mislukt. Kon de benodigde bestanden niet vinden. Ze lijken te ontbreken in deze installatie.
+
+
+
+ Could not create new project folder.
+ Kon geen nieuwe projectmap aanmaken.
+
+
+
+ New project folder is not empty. Each project requires a dedicated project folder.
+ Nieuwe projectmap is niet leeg. Elk project vereist een eigen projectmap.
+
+
+
+ You must set a valid backup path in Preferences to use the automatic project backup feature.
+ U moet een geldig reservekopie pad instellen in de Voorkeuren om de automatische project reservekopie functie te kunnen gebruiken.
+
+
+
+ You must set a valid project name in Project Settings to use the automatic project backup feature.
+ U moet een geldige projectnaam instellen in Projectinstellingen om de automatische project reservekopie functie te kunnen gebruiken.
+
+
+
+ and
+ en
+
+
+
+ Could not create folder.
+ Kon de map niet aanmaken.
+
+
+
+ Found {0} orphaned file(s) in project folder.
+ {0} weesbestand(en) gevonden in de projectmap.
+
+
+
+ Recovered
+ Hersteld
+
+
+
+ [{0}] {1}
+ [{0}] {1}
+
+
+
+ Recovered File {0}
+ Hersteld bestand {0}
+
+
+
+ One or more orphaned files could not be added back into the project. Make sure at least a Novel root folder exists.
+ Een of meer verweesde bestanden konden niet aan het project worden terug gevoegd. Zorg ervoor dat er tenminste een Roman hoofdmap bestaat.
+
+
+
+ Not a folder: {0}
+ Is geen map: {0}
+
+
+
+ Could not move: {0}
+ Kon niet verplaatsen: {0}
+
+
+
+
+ Could not delete: {0}
+ Kon niet verwijderen: {0}
+
+
+
+ Could not make folder: {0}
+ Kon map niet maken: {0}
+
+
+
+ Could not move item {0} to {1}.
+ Kon item {0} niet verplaatsen naar {1}.
+
+
+
+ ProjWizardCustomPage
+
+
+ Custom Project Options
+ Aangepaste projectopties
+
+
+
+ Select which additional root folders to make, and how to populate the Novel folder. If you don't want to add chapters or scenes, set the values to 0. You can add scenes without chapters.
+ Selecteer welke extra hoofdmappen aan te maken en hoe de Roman map gevuld moet worden. Als je geen hoofdstukken of scènes wilt toevoegen, stel de waarden in op 0. Je kunt scènes toevoegen zonder hoofdstukken.
+
+
+
+ Additional Root Folders
+ Aanvullende hoofdmappen
+
+
+
+
+
+
+
+
+ {0} folder
+ {0} map
+
+
+
+ Populate Novel Folder
+ Roman map vullen
+
+
+
+ Add chapters
+ Hoofdstukken toevoegen
+
+
+
+ Scenes (per chapter)
+ Scènes (per hoofdstuk)
+
+
+
+ Add chapter folders
+ Hoofdstukmappen toevoegen
+
+
+
+ ProjWizardFinalPage
+
+
+ Finished
+ Voltooid
+
+
+
+ All done.
+ Alles is klaar.
+
+
+
+ Press '{0}' to create the new project.
+ Druk op '{0}' om het nieuwe project aan te maken.
+
+
+
+ Done
+ Voltooid
+
+
+
+ Finish
+ Voltooien
+
+
+
+ ProjWizardFolderPage
+
+
+
+ Select Project Folder
+ Selecteer projectmap
+
+
+
+ Select a location to store the project. A new project folder will be created in the selected location.
+ Selecteer een locatie om het project op te slaan. Een nieuwe projectmap zal worden gemaakt op de geselecteerde locatie.
+
+
+
+ Required
+ Vereist
+
+
+
+ Project Path
+ Project pad
+
+
+
+ ProjWizardIntroPage
+
+
+ Create New Project
+ Nieuw project maken
+
+
+
+ Provide at least a working title. The working title should not be change beyond this point as it is used by the application for generating file names for for instance backups. The other fields are optional and can be changed at any time in Project Settings.
+ Geef ten minste een werk titel op. De werktitel mag niet worden gewijzigd na dit punt, omdat het wordt gebruikt door de applicatie voor het genereren van bestandsnamen voor, bijvoorbeeld, reservekopieën. De andere velden zijn optioneel en kunnen op elk gewenst moment worden gewijzigd in Projectinstellingen.
+
+
+
+ Side image by {0}, {1}
+ Zijbeeld door {0}, {1}
+
+
+
+ Required
+ Vereist
+
+
+
+ Optional
+ Optioneel
+
+
+
+ Optional. One name per line.
+ Optioneel. Eén naam per regel.
+
+
+
+ Working Title
+ Werk titel
+
+
+
+ Novel Title
+ Roman titel
+
+
+
+ Author(s)
+ Auteur(s)
+
+
+
+ ProjWizardPopulatePage
+
+
+ Populate Project
+ Project bevolken
+
+
+
+ Choose how to pre-fill the project. Either with a minimal set of starter items, an example project explaining and showing many of the features, or show further custom options on the next page.
+ Kies hoe het project vooraf moet worden ingevuld. Ofwel met een minimale set van starter items, een voorbeeldproject dat veel van de functies uitlegt en laat zien, of toon verdere aanpasbare opties op de volgende pagina.
+
+
+
+ Fill the project with a minimal set of items
+ Vul het project met een minimale set items
+
+
+
+ Fill the project with example files
+ Vul het project met voorbeeldbestanden
+
+
+
+ Show detailed options for filling the project
+ Toon gedetailleerde opties voor het vullen van het project
+
+
+
+ QDialogButtonBox
+
+
+ OK
+ OK
+
+
+
+ QGnomeTheme
+
+
+ &OK
+ &OK
+
+
+
+ &Save
+ &Opslaan
+
+
+
+ &Cancel
+ &Annuleren
+
+
+
+ &Close
+ &Sluiten
+
+
+
+ Close without Saving
+ Sluiten zonder opslaan
+
+
+
+ QPlatformTheme
+
+
+ OK
+ OK
+
+
+
+ Save
+ Opslaan
+
+
+
+ Save All
+ Alles opslaan
+
+
+
+ Open
+ Openen
+
+
+
+ &Yes
+ &Ja
+
+
+
+ Yes to &All
+ Ja voor &alles
+
+
+
+ &No
+ &Nee
+
+
+
+ N&o to All
+ N&ee op alles
+
+
+
+ Abort
+ Afbreken
+
+
+
+ Retry
+ Opnieuw proberen
+
+
+
+ Ignore
+ Negeren
+
+
+
+ Close
+ Sluiten
+
+
+
+ Cancel
+ Annuleren
+
+
+
+ Discard
+ Weggooien
+
+
+
+ Help
+ Help
+
+
+
+ Apply
+ Toepassen
+
+
+
+ Reset
+ Beginwaarden
+
+
+
+ Restore Defaults
+ Standaardwaarden herstellen
+
+
+
+ QWizard
+
+
+ Go Back
+ Ga terug
+
+
+
+ < &Back
+ < &Terug
+
+
+
+ Continue
+ Doorgaan
+
+
+
+ &Next
+ &Volgende
+
+
+
+ &Next >
+ &Volgende >
+
+
+
+ Commit
+ Vastleggen
+
+
+
+ Done
+ Gereed
+
+
+
+ &Finish
+ Vol&tooien
+
+
+
+
+ Cancel
+ Annuleren
+
+
+
+ Help
+ Help
+
+
+
+ &Help
+ &Help
+
+
+
+ Tokenizer
+
+
+ Synopsis
+ Synopsis
+
+
+
+ Document '{0}' is too big ({1} MB). Skipping.
+ Document '{0}' is te groot ({1} MB). Overgeslagen.
+
+
+
+ ERROR
+ FOUT
+
+
+
diff --git a/novelwriter/__init__.py b/novelwriter/__init__.py
index 6fe370b9..164a05e7 100644
--- a/novelwriter/__init__.py
+++ b/novelwriter/__init__.py
@@ -60,9 +60,9 @@ __license__ = "GPLv3"
__author__ = "Veronica Berglyd Olsen"
__maintainer__ = "Veronica Berglyd Olsen"
__email__ = "code@vkbo.net"
-__version__ = "1.6-rc1"
-__hexversion__ = "0x010600c1"
-__date__ = "2022-02-06"
+__version__ = "1.7-alpha0"
+__hexversion__ = "0x010700a0"
+__date__ = "2022-02-20"
__status__ = "Stable"
__domain__ = "novelwriter.io"
__url__ = "https://novelwriter.io"
@@ -209,9 +209,9 @@ def main(sysArgs=None):
# Check Packages and Versions
errorData = []
errorCode = 0
- if sys.hexversion < 0x030600f0:
+ if sys.hexversion < 0x030700f0:
errorData.append(
- "At least Python 3.6 is required, found %s" % CONFIG.verPyString
+ "At least Python 3.7 is required, found %s" % CONFIG.verPyString
)
errorCode |= 0x04
if CONFIG.verQtValue < 50300:
diff --git a/novelwriter/assets/text/release_notes.htm b/novelwriter/assets/text/release_notes.htm
index ebc4f260..0850e30c 100644
--- a/novelwriter/assets/text/release_notes.htm
+++ b/novelwriter/assets/text/release_notes.htm
@@ -2,16 +2,56 @@
-
Release Notes for 1.6 RC 1
-
Released on 6 February 2022
+
Release Notes for 1.6
+
Released on 20 February 2022
-
This is a release candidate for the next release version, and is intended for testing purposes.
-Please be careful when using this version on live writing projects, and make sure you take frequent
-backups.
-
Please check the changelog for an overview of changes. The full release notes will be added to
-the final release.
+
This release does not introduce any major new features, but is instead a collection of minor
+improvements and tweaks based on user requests. There are also a number of changes under the hood
+to improve the structure and performance of novelWriter.
+
Some key improvements to the user interface are:
+
✓ The max text width setting in Preferences now also applies to the document viewer, and
+the setting itself on the Preference dialog has been simplified a bit.
+
✓ When text is selected in the document editor, the number of words selected is displayed
+in the editor's footer area.
+
✓ The search tool in the document editor now shows the number of results in the
+document.
+
✓ The Enter and Ctrl+O keyboard shortcuts should now work the same way in all tree
+views.
+
✓ It is now possible to set a blank section title format on the Build Novel Project tool
+and get empty paragraphs in the output. Previously, a blank format would just remove the section
+break entirely. This change allows the user to define hard and soft scene breaks using level three
+and four headings. The scene and section titles can be hidden completely with two new switches
+added to the user interface.
+
Other feature changes include:
+
✓ The project index is now automatically rebuilt in the event it is empty or incomplete
+when the project is opened.
+
✓ The user can now add their own syntax and GUI theme files in the app folder in their
+user area on the host operating system. Where the custom files must be added is described in the
+documentation.
+
✓ A Windows installer is yet again provided for novelWriter. If you have novelWriter
+installed using another method, make sure you uninstall it properly first as the two methods are
+not compatible.
+
✓ Release versions for Ubuntu 21.04 have been dropped, and added for the upcoming Ubuntu
+22.04.
+
✓ Most translations have been updated. A Dutch translation is in the works.
This is a bugfix and patch release that fixes two recursion/loop issues. One would potentially
+cause a crash if the window was resized rapidly, and one would cause a hang with certain search
+parameters in the editor's search box. The Latin American Spanish translation has also been
+updated.
+
+
Patch 1.6.2 – 20 March 2022
+
+
This is a bugfix release that fixes a couple of minor issues. Projects containing one or more
+empty documents would trigger a rebuild of the index each time the project was opened. This has now
+been fixed. Another fix resolves an error message being written to the console logging output when
+a new document was created. Both errors were harmless.
+
diff --git a/novelwriter/common.py b/novelwriter/common.py
index 8d6f9a8c..8e17a7ee 100644
--- a/novelwriter/common.py
+++ b/novelwriter/common.py
@@ -241,19 +241,6 @@ def formatTime(tS):
return "ERROR"
-def parseTimeStamp(theStamp, default, allowNone=False):
- """Parses a text representation of a timestamp and converts it into
- a float. Note that negative timestamps cause an OSError on Windows.
- See https://bugs.python.org/issue29097
- """
- if str(theStamp).lower() == "none" and allowNone:
- return None
- try:
- return datetime.strptime(theStamp, nwConst.FMT_TSTAMP).timestamp()
- except Exception:
- return default
-
-
# =============================================================================================== #
# String Functions
# =============================================================================================== #
diff --git a/novelwriter/core/document.py b/novelwriter/core/document.py
index 71916af8..2334c77c 100644
--- a/novelwriter/core/document.py
+++ b/novelwriter/core/document.py
@@ -89,9 +89,10 @@ class NWDoc():
theText = ""
self._docMeta = {}
- self._prevHash = sha256sum(docPath)
+ self._prevHash = None
if os.path.isfile(docPath):
+ self._prevHash = sha256sum(docPath)
try:
with open(docPath, mode="r", encoding="utf-8") as inFile:
# Check the first <= 10 lines for metadata
diff --git a/novelwriter/core/index.py b/novelwriter/core/index.py
index fa4f01dd..b05fa952 100644
--- a/novelwriter/core/index.py
+++ b/novelwriter/core/index.py
@@ -112,8 +112,7 @@ class NWIndex():
theDoc = NWDoc(self.theProject, tHandle)
theText = theDoc.readDocument()
- if theText:
- self.scanText(tHandle, theText)
+ self.scanText(tHandle, theText if theText is not None else "")
return True
@@ -217,18 +216,19 @@ class NWIndex():
if theItem.itemType != nwItemType.FILE:
logger.info("Not indexing non-file item '%s'", tHandle)
return False
+
+ # Run word counter for the whole text
+ cC, wC, pC = countWords(theText)
+ self._fileMeta[tHandle] = ["H0", cC, wC, pC]
+
+ # If the file's meta data is missing, or the file is out of the
+ # main project, we don't index the content
if theItem.itemLayout == nwItemLayout.NO_LAYOUT:
logger.info("Not indexing no-layout item '%s'", tHandle)
return False
if theItem.itemParent is None:
logger.info("Not indexing orphaned item '%s'", tHandle)
return False
-
- # Run word counter for the whole text
- cC, wC, pC = countWords(theText)
- self._fileMeta[tHandle] = ["H0", cC, wC, pC]
-
- # If the file is archived or in trash, we don't index the content
if self.theProject.projTree.isTrashRoot(theItem.itemParent):
logger.debug("Not indexing trash item '%s'", tHandle)
return False
diff --git a/novelwriter/core/item.py b/novelwriter/core/item.py
index 8c7b2ef4..67dd836c 100644
--- a/novelwriter/core/item.py
+++ b/novelwriter/core/item.py
@@ -139,24 +139,32 @@ class NWItem():
def packXML(self, xParent):
"""Pack all the data in the class instance into an XML object.
"""
- xPack = etree.SubElement(xParent, "item", attrib={
- "handle": str(self._handle),
- "order": str(self._order),
- "parent": str(self._parent),
- })
- self._subPack(xPack, "name", text=str(self._name))
- self._subPack(xPack, "type", text=str(self._type.name))
- self._subPack(xPack, "class", text=str(self._class.name))
- self._subPack(xPack, "status", text=str(self._status))
+ itemAttrib = {}
+ itemAttrib["handle"] = str(self._handle)
+ itemAttrib["parent"] = str(self._parent)
+ itemAttrib["order"] = str(self._order)
+ itemAttrib["type"] = str(self._type.name)
+ itemAttrib["class"] = str(self._class.name)
if self._type == nwItemType.FILE:
- self._subPack(xPack, "exported", text=str(self._exported))
- self._subPack(xPack, "layout", text=str(self._layout.name))
- self._subPack(xPack, "charCount", text=str(self._charCount), none=False)
- self._subPack(xPack, "wordCount", text=str(self._wordCount), none=False)
- self._subPack(xPack, "paraCount", text=str(self._paraCount), none=False)
- self._subPack(xPack, "cursorPos", text=str(self._cursorPos), none=False)
+ itemAttrib["layout"] = str(self._layout.name)
+
+ metaAttrib = {}
+ if self._type == nwItemType.FILE:
+ metaAttrib["charCount"] = str(self._charCount)
+ metaAttrib["wordCount"] = str(self._wordCount)
+ metaAttrib["paraCount"] = str(self._paraCount)
+ metaAttrib["cursorPos"] = str(self._cursorPos)
else:
- self._subPack(xPack, "expanded", text=str(self._expanded))
+ metaAttrib["expanded"] = str(self._expanded)
+
+ nameAttrib = {}
+ nameAttrib["status"] = str(self._status)
+ if self._type == nwItemType.FILE:
+ nameAttrib["exported"] = str(self._exported)
+
+ xPack = etree.SubElement(xParent, "item", attrib=itemAttrib)
+ self._subPack(xPack, "meta", attrib=metaAttrib)
+ self._subPack(xPack, "name", text=str(self._name), attrib=nameAttrib)
return
@@ -175,19 +183,31 @@ class NWItem():
self.setParent(xItem.attrib.get("parent", None))
self.setOrder(xItem.attrib.get("order", 0))
+ self.setType(xItem.attrib.get("type", nwItemType.NO_TYPE))
+ self.setClass(xItem.attrib.get("class", nwItemClass.NO_CLASS))
+ self.setLayout(xItem.attrib.get("layout", nwItemLayout.NO_LAYOUT))
- tmpStatus = ""
for xValue in xItem:
- if xValue.tag == "name":
+ if xValue.tag == "meta":
+ self.setExpanded(xValue.attrib.get("expanded", False))
+ self.setCharCount(xValue.attrib.get("charCount", 0))
+ self.setWordCount(xValue.attrib.get("wordCount", 0))
+ self.setParaCount(xValue.attrib.get("paraCount", 0))
+ self.setCursorPos(xValue.attrib.get("cursorPos", 0))
+ elif xValue.tag == "name":
self.setName(xValue.text)
+ self.setStatus(xValue.attrib.get("status", None))
+ self.setExported(xValue.attrib.get("exported", True))
+
+ # Legacy Format (1.3 and earlier)
+ elif xValue.tag == "status":
+ self.setStatus(xValue.text)
elif xValue.tag == "type":
self.setType(xValue.text)
elif xValue.tag == "class":
self.setClass(xValue.text)
elif xValue.tag == "layout":
self.setLayout(xValue.text)
- elif xValue.tag == "status":
- tmpStatus = xValue.text
elif xValue.tag == "expanded":
self.setExpanded(xValue.text)
elif xValue.tag == "exported":
@@ -206,9 +226,6 @@ class NWItem():
# version of novelWriter that doesn't know the tag
logger.error("Unknown tag '%s'", xValue.tag)
- # Guarantees that is parsed after
- self.setStatus(tmpStatus)
-
return True
@staticmethod
diff --git a/novelwriter/core/project.py b/novelwriter/core/project.py
index 284efbec..a3c16de6 100644
--- a/novelwriter/core/project.py
+++ b/novelwriter/core/project.py
@@ -53,7 +53,7 @@ logger = logging.getLogger(__name__)
class NWProject():
- FILE_VERSION = "1.3"
+ FILE_VERSION = "1.4"
def __init__(self, theParent):
@@ -474,8 +474,11 @@ class NWProject():
# 1.3 : Reduces the number of layouts to only two. One for novel
# documents and one for project notes. Introduced in
# version 1.5.
+ # 1.4 : Introduces a more compact format for storing items. All
+ # settings aside from name are now attributes. Introduced
+ # in version 1.7.
- if fileVersion not in ("1.0", "1.1", "1.2", "1.3"):
+ if fileVersion not in ("1.0", "1.1", "1.2", "1.3", "1.4"):
self.theParent.makeAlert(self.tr(
"Unknown or unsupported novelWriter project file format. "
"The project cannot be opened by this version of novelWriter. "
diff --git a/novelwriter/core/tokenizer.py b/novelwriter/core/tokenizer.py
index 6a3a9809..271ffd2c 100644
--- a/novelwriter/core/tokenizer.py
+++ b/novelwriter/core/tokenizer.py
@@ -1,7 +1,7 @@
"""
novelWriter – Text Tokenizer
============================
-Splits a piece of novelWriter markdown text into its elements
+Split novelWriter plain text into its elements
File History:
Created: 2019-05-05 [0.0.1]
@@ -27,6 +27,7 @@ import re
import logging
import novelwriter
+from abc import ABC, abstractmethod
from operator import itemgetter
from functools import partial
@@ -40,7 +41,7 @@ from novelwriter.core.document import NWDoc
logger = logging.getLogger(__name__)
-class Tokenizer():
+class Tokenizer(ABC):
# In-Text Format
FMT_B_B = 1 # Begin bold
@@ -267,6 +268,10 @@ class Tokenizer():
# Class Methods
##
+ @abstractmethod
+ def doConvert(self):
+ raise NotImplementedError
+
def addRootHeading(self, theHandle):
"""Add a heading at the start of a new root folder.
"""
diff --git a/novelwriter/core/toodt.py b/novelwriter/core/toodt.py
index c68f8991..c0b1daee 100644
--- a/novelwriter/core/toodt.py
+++ b/novelwriter/core/toodt.py
@@ -330,7 +330,7 @@ class ToOdt(Tokenizer):
# Meta Data
xMeta = etree.SubElement(self._xMeta, _mkTag("meta", "creation-date"))
- xMeta.text = datetime.now().strftime(r"%Y-%m-%dT%H:%M:%S")
+ xMeta.text = datetime.now().isoformat(sep="T", timespec="seconds")
xMeta = etree.SubElement(self._xMeta, _mkTag("meta", "generator"))
xMeta.text = f"novelWriter/{novelwriter.__version__}"
diff --git a/novelwriter/dialogs/about.py b/novelwriter/dialogs/about.py
index c8b9c898..574fba34 100644
--- a/novelwriter/dialogs/about.py
+++ b/novelwriter/dialogs/about.py
@@ -187,6 +187,7 @@ class GuiAbout(QDialog):
("Português", "Bruno Meneguello"),
("简体中文", "Qianzhi Long"),
("Español Latinoamericano", "Tommy Marplatt"),
+ ("Nederlands", "Martijn van der Kleijn"),
])
)
diff --git a/novelwriter/error.py b/novelwriter/error.py
index 88268e5e..0dec56e8 100644
--- a/novelwriter/error.py
+++ b/novelwriter/error.py
@@ -24,6 +24,7 @@ along with this program. If not, see .
"""
import sys
+import random
import logging
from PyQt5.QtCore import Qt
@@ -86,6 +87,13 @@ class NWErrorMessage(QDialog):
self.mainBox.addWidget(self.btnBox, 2, 0, 1, 2)
self.mainBox.setSpacing(16)
+ self.setWindowTitle([
+ "+++ Out of Cheese Error +++",
+ "+++ Divide by Cucumber Error +++",
+ "+++ Whoops! Here Comes The Cheese! +++",
+ "+++ Please Reinstall Universe and Reboot +++",
+ ][random.randint(0, 3)])
+
self.setLayout(self.mainBox)
self.setMinimumWidth(500)
diff --git a/novelwriter/gui/doceditor.py b/novelwriter/gui/doceditor.py
index 41442385..4d35c978 100644
--- a/novelwriter/gui/doceditor.py
+++ b/novelwriter/gui/doceditor.py
@@ -1061,8 +1061,8 @@ class GuiDocEditor(QTextEdit):
"""If the text editor is resized, we must make sure the document
has its margins adjusted according to user preferences.
"""
- QTextEdit.resizeEvent(self, theEvent)
self.updateDocMargins()
+ QTextEdit.resizeEvent(self, theEvent)
return
##
@@ -1436,10 +1436,16 @@ class GuiDocEditor(QTextEdit):
theCursor.setPosition(0)
self.setTextCursor(theCursor)
- while self.find(searchFor, findOpt):
+ # Search up to a maximum of 1000, and make sure certain special
+ # searches like a regex search for .* turns into an infinite loop
+ while self.find(searchFor, findOpt) and len(resE) <= 1000:
theCursor = self.textCursor()
- resS.append(theCursor.selectionStart())
- resE.append(theCursor.selectionEnd())
+ if theCursor.hasSelection():
+ resS.append(theCursor.selectionStart())
+ resE.append(theCursor.selectionEnd())
+ else:
+ logger.warning("The search returned an empty result")
+ break
if hasSelection:
theCursor.setPosition(origA, QTextCursor.MoveAnchor)
@@ -2410,7 +2416,7 @@ class GuiDocEditSearch(QFrame):
"""Set the count values for the current search.
"""
currRes = "?" if currRes is None else currRes
- resCount = "?" if resCount is None else resCount
+ resCount = "?" if resCount is None else "1000+" if resCount > 1000 else resCount
minWidth = self.theTheme.getTextWidth(f"{resCount}//{resCount}", self.boxFont)
self.resultLabel.setText(f"{currRes}/{resCount}")
self.resultLabel.setMinimumWidth(minWidth)
diff --git a/novelwriter/gui/docviewer.py b/novelwriter/gui/docviewer.py
index 72c142a0..4ec59570 100644
--- a/novelwriter/gui/docviewer.py
+++ b/novelwriter/gui/docviewer.py
@@ -471,10 +471,11 @@ class GuiDocViewer(QTextBrowser):
##
def resizeEvent(self, theEvent):
- """Make sure the document title is the same width as the window.
+ """If the text editor is resized, we must make sure the document
+ has its margins adjusted according to user preferences.
"""
- QTextBrowser.resizeEvent(self, theEvent)
self.updateDocMargins()
+ QTextBrowser.resizeEvent(self, theEvent)
return
def mouseReleaseEvent(self, theEvent):
diff --git a/novelwriter/tools/writingstats.py b/novelwriter/tools/writingstats.py
index e0a338bb..4ce83b66 100644
--- a/novelwriter/tools/writingstats.py
+++ b/novelwriter/tools/writingstats.py
@@ -457,12 +457,8 @@ class GuiWritingStats(QDialog):
if len(inData) < 6:
continue
- dStart = datetime.strptime(
- "%s %s" % (inData[0], inData[1]), nwConst.FMT_TSTAMP
- )
- dEnd = datetime.strptime(
- "%s %s" % (inData[2], inData[3]), nwConst.FMT_TSTAMP
- )
+ dStart = datetime.fromisoformat(" ".join(inData[0:2]))
+ dEnd = datetime.fromisoformat(" ".join(inData[2:4]))
sIdle = 0
if len(inData) > 6:
diff --git a/sample/nwProject.nwx b/sample/nwProject.nwx
index 2510f865..bf40e1ee 100644
--- a/sample/nwProject.nwx
+++ b/sample/nwProject.nwx
@@ -1,13 +1,13 @@
-
+Sample ProjectSample ProjectJane SmithJay Doh
- 1297
+ 1303199
- 64424
+ 64457False
@@ -49,265 +49,105 @@
-
- Novel
- ROOT
- NOVEL
- Started
- True
+
+
+ Novel
-
- Title Page
- FILE
- NOVEL
- Started
- True
- DOCUMENT
- 93
- 19
- 2
- 2
+
+
+ Title Page
-
- Page
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 186
- 39
- 2
- 212
+
+
+ Page
-
- Part One
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 26
- 6
- 1
- 33
+
+
+ Part One
-
- A Folder
- FOLDER
- NOVEL
- 1st Draft
- True
+
+
+ A Folder
-
- Chapter One
- FILE
- NOVEL
- Notes
- True
- DOCUMENT
- 75
- 14
- 1
- 279
+
+
+ Chapter One
-
- Making a Scene
- FILE
- NOVEL
- 1st Draft
- True
- DOCUMENT
- 2429
- 432
- 14
- 219
+
+
+ Making a Scene
-
- Another Scene
- FILE
- NOVEL
- 1st Draft
- True
- DOCUMENT
- 476
- 93
- 3
- 577
+
+
+ Another Scene
-
- Interlude
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 617
- 101
- 3
- 4
+
+
+ Interlude
-
- A Note on Structure
- FILE
- NOVEL
- 2nd Draft
- False
- NOTE
- 1692
- 313
- 6
- 1110
+
+
+ A Note on Structure
-
- Chapter Two
- FILE
- NOVEL
- 1st Draft
- True
- DOCUMENT
- 139
- 28
- 1
- 343
+
+
+ Chapter Two
-
- We Found John!
- FILE
- NOVEL
- 1st Draft
- True
- DOCUMENT
- 189
- 37
- 1
- 224
+
+
+ We Found John!
-
- Characters
- ROOT
- CHARACTER
- None
- True
+
+
+ Characters
-
- Main Characters
- FOLDER
- CHARACTER
- None
- True
+
+
+ Main Characters
-
- John Smith
- FILE
- CHARACTER
- Minor
- True
- NOTE
- 49
- 9
- 1
- 24
+
+
+ John Smith
-
- Jane Smith
- FILE
- CHARACTER
- Major
- True
- NOTE
- 55
- 9
- 1
- 25
+
+
+ Jane Smith
-
- Locations
- ROOT
- WORLD
- None
- True
+
+
+ Locations
-
- Earth
- FILE
- WORLD
- Main
- True
- NOTE
- 76
- 15
- 1
- 20
+
+
+ Earth
-
- Space
- FILE
- WORLD
- Minor
- True
- NOTE
- 115
- 24
- 1
- 133
+
+
+ Space
-
- Mars
- FILE
- WORLD
- Major
- True
- NOTE
- 28
- 6
- 1
- 45
+
+
+ Mars
-
- Archive
- ROOT
- ARCHIVE
- New
- True
+
+
+ Archive
-
- Scenes
- FOLDER
- ARCHIVE
- New
- True
+
+
+ Scenes
-
- Old File
- FILE
- NOVEL
- 1st Draft
- True
- DOCUMENT
- 315
- 55
- 1
- 322
+
+
+ Old File
-
- Trash
- TRASH
- TRASH
- None
- True
+
+
+ Trash
-
- Delete Me!
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 30
- 6
- 1
- 36
+
+
+ Delete Me!
diff --git a/setup.cfg b/setup.cfg
index d3bbcf41..b88b656b 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -11,7 +11,6 @@ license_file = LICENSE.md
license = GNU General Public License v3
classifiers =
Programming Language :: Python :: 3 :: Only
- Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
Programming Language :: Python :: 3.9
@@ -29,7 +28,7 @@ project_urls =
Source Code = https://github.com/vkbo/novelWriter
[options]
-python_requires = >=3.6
+python_requires = >=3.7
include_package_data = True
packages = find:
install_requires =
@@ -50,6 +49,6 @@ gui_scripts =
universal = 0
[flake8]
-ignore = E221,E226,E228,E241
+ignore = E133,E221,E226,E228,E241,W503
max-line-length = 99
exclude = docs/*
diff --git a/setup.py b/setup.py
index 44d5cb1f..f72ce936 100755
--- a/setup.py
+++ b/setup.py
@@ -786,7 +786,6 @@ def makeForLaunchpad(doSign=False, isFirst=False, isSnapshot=False):
bldNum = "0"
distLoop = [
- ("18.04", "bionic"),
("20.04", "focal"),
("21.10", "impish"),
("22.04", "jammy"),
diff --git a/setup/debian/control b/setup/debian/control
index d32c56ba..e2d40f90 100644
--- a/setup/debian/control
+++ b/setup/debian/control
@@ -2,14 +2,14 @@ Source: novelwriter
Maintainer: Veronica Berglyd Olsen
Section: text
Priority: optional
-Build-Depends: dh-python, python3-setuptools, python3-all, debhelper (>= 9), python3 (>=3.6), python3-pyqt5 (>= 5.3), python3-lxml (>= 4.0), python3-enchant (>= 2.0)
+Build-Depends: dh-python, python3-setuptools, python3-all, debhelper (>= 9), python3 (>=3.7), python3-pyqt5 (>= 5.3), python3-lxml (>= 4.0), python3-enchant (>= 2.0)
Standards-Version: 4.5.1
Homepage: https://novelwriter.io
-X-Python3-Version: >= 3.6
+X-Python3-Version: >= 3.7
Package: novelwriter
Architecture: all
-Depends: ${misc:Depends}, ${python3:Depends}, python3 (>=3.6), python3-pyqt5 (>= 5.3), python3-lxml (>= 4.0), python3-enchant (>= 2.0)
+Depends: ${misc:Depends}, ${python3:Depends}, python3 (>=3.7), python3-pyqt5 (>= 5.3), python3-lxml (>= 4.0), python3-enchant (>= 2.0)
Description: A markdown-like text editor for planning and writing novels
novelWriter is a plain text editor designed for writing novels assembled from
many smaller text documents. It uses a minimal formatting syntax inspired by
diff --git a/setup/description_pypi.md b/setup/description_pypi.md
index 8c15b1be..ed98ffda 100644
--- a/setup/description_pypi.md
+++ b/setup/description_pypi.md
@@ -10,9 +10,9 @@ synchronisation tools. All text is saved as plain text files with a meta data he
project structure is stored in a single project XML file, and other meta data is primarily saved as
JSON files.
-The application is written in Python 3 (3.6+) using Qt5 and PyQt5 (5.3+). It is developed on Linux,
-but should in principle work fine on other operating systems as well as long as dependencies are
-met. It is regularly tested on Debian and Ubuntu Linux, Windows, and macOS.
+The application is written with Python 3 (3.7+) using Qt5 and PyQt5 (5.3+). It is developed on
+Linux, but should in principle work fine on other operating systems as well as long as dependencies
+are met. It is regularly tested on Debian and Ubuntu Linux, Windows, and macOS.
novelWriter is developed and maintained by [Veronica Berglyd Olsen](https://github.com/vkbo).
diff --git a/setup/win_setup_embed.iss b/setup/win_setup_embed.iss
index 84911592..7505f6c1 100644
--- a/setup/win_setup_embed.iss
+++ b/setup/win_setup_embed.iss
@@ -51,6 +51,6 @@ Filename: "{app}\pythonw.exe"; Parameters: "{#nwAppExeName}"; Description: "{cm
[Registry]
Root: HKA; Subkey: "Software\Classes\.nwx\OpenWithProgids"; ValueType: string; ValueName: "novelWriterProject.nwx"; ValueData: ""; Flags: uninsdeletevalue
Root: HKA; Subkey: "Software\Classes\novelWriterProject.nwx"; ValueType: string; ValueName: ""; ValueData: "novelWriter Project File"; Flags: uninsdeletekey
-Root: HKA; Subkey: "Software\Classes\novelWriterProject.nwx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\assets\icons\x-novelwriter-project.ico"
+Root: HKA; Subkey: "Software\Classes\novelWriterProject.nwx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\novelwriter\assets\icons\x-novelwriter-project.ico"
Root: HKA; Subkey: "Software\Classes\novelWriterProject.nwx\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\pythonw.exe"" ""{app}\{#nwAppExeName}"" ""%1"""
Root: HKA; Subkey: "Software\Classes\Applications\{#nwAppExeName}\SupportedTypes"; ValueType: string; ValueName: ".nwx"; ValueData: ""; Flags: uninsdeletekey
diff --git a/tests/lipsum/nwProject.nwx b/tests/lipsum/nwProject.nwx
index 02803bbd..c6eab805 100644
--- a/tests/lipsum/nwProject.nwx
+++ b/tests/lipsum/nwProject.nwx
@@ -1,12 +1,12 @@
-
+Lorem IpsumLorem Ipsumlipsum.com
- 17
+ 2124
- 1777
+ 1847False
@@ -44,227 +44,89 @@
-
- Novel
- ROOT
- NOVEL
- New
- True
+
+
+ Novel
-
- Lorem Ipsum
- FILE
- NOVEL
- Finished
- True
- DOCUMENT
- 230
- 40
- 3
- 148
+
+
+ Lorem Ipsum
-
- Front Matter
- FILE
- NOVEL
- Finished
- True
- DOCUMENT
- 1058
- 176
- 2
- 43
+
+
+ Front Matter
-
- Prologue
- FILE
- NOVEL
- Draft
- True
- DOCUMENT
- 584
- 92
- 1
- 4
+
+
+ Prologue
-
- Act One
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 35
- 6
- 1
- 42
+
+
+ Act One
-
- Chapter One
- FOLDER
- NOVEL
- Draft
- True
+
+
+ Chapter One
-
- Chapter One
- FILE
- NOVEL
- Draft
- True
- DOCUMENT
- 419
- 67
- 1
- 56
+
+
+ Chapter One
-
- Scene One
- FILE
- NOVEL
- Finished
- True
- DOCUMENT
- 2758
- 404
- 4
- 1528
+
+
+ Scene One
-
- Scene Two
- FILE
- NOVEL
- Finished
- True
- DOCUMENT
- 4043
- 600
- 6
- 2335
+
+
+ Scene Two
-
- Interlude
- FILE
- NOVEL
- New
- False
- DOCUMENT
- 631
- 109
- 3
- 376
+
+
+ Interlude
-
- Chapter Two
- FOLDER
- NOVEL
- Draft
- True
+
+
+ Chapter Two
-
- Chapter Two
- FILE
- NOVEL
- Draft
- True
- DOCUMENT
- 477
- 70
- 1
- 56
+
+
+ Chapter Two
-
- Scene Three
- FILE
- NOVEL
- Finished
- True
- DOCUMENT
- 3006
- 439
- 4
- 57
+
+
+ Scene Three
-
- Scene Four
- FILE
- NOVEL
- Finished
- True
- DOCUMENT
- 3839
- 563
- 6
- 56
+
+
+ Scene Four
-
- Scene Five
- FILE
- NOVEL
- Finished
- True
- DOCUMENT
- 3644
- 543
- 5
- 351
+
+
+ Scene Five
-
- Characters
- ROOT
- CHARACTER
- New
- True
+
+
+ Characters
-
- Mr. Nobody
- FILE
- CHARACTER
- Major
- True
- NOTE
- 1864
- 284
- 3
- 1883
+
+
+ Mr. Nobody
-
- Plot
- ROOT
- PLOT
- New
- True
+
+
+ Plot
-
- Main
- FILE
- PLOT
- Main
- True
- NOTE
- 1369
- 195
- 2
- 1387
+
+
+ Main
-
- World
- ROOT
- WORLD
- New
- True
+
+
+ World
-
- Ancient Europe
- FILE
- WORLD
- Minor
- True
- NOTE
- 1770
- 259
- 3
- 1792
+
+
+ Ancient Europe
diff --git a/tests/minimal/nwProject.nwx b/tests/minimal/nwProject.nwx
index c1f2a901..991d8b68 100644
--- a/tests/minimal/nwProject.nwx
+++ b/tests/minimal/nwProject.nwx
@@ -1,13 +1,13 @@
-
+Test MinimalMinimalJane DoeJohn Doh
- 9
+ 122
- 113
+ 129True
@@ -42,76 +42,37 @@
-
- Novel
- ROOT
- NOVEL
- New
- True
+
+
+ Novel
-
- Title Page
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 28
- 6
- 1
- 33
+
+
+ Title Page
-
- New Chapter
- FOLDER
- NOVEL
- New
- True
+
+
+ New Chapter
-
- New Chapter
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 11
- 2
- 0
- 16
+
+
+ New Chapter
-
- New Scene
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 9
- 2
- 0
- 15
+
+
+ New Scene
-
- Plot
- ROOT
- PLOT
- New
- False
+
+
+ Plot
-
- Characters
- ROOT
- CHARACTER
- New
- False
+
+
+ Characters
-
- World
- ROOT
- WORLD
- New
- False
+
+
+ World
diff --git a/tests/reference/coreProject_NewCustomA_nwProject.nwx b/tests/reference/coreProject_NewCustomA_nwProject.nwx
index 3ba6a538..4b8a67bf 100644
--- a/tests/reference/coreProject_NewCustomA_nwProject.nwx
+++ b/tests/reference/coreProject_NewCustomA_nwProject.nwx
@@ -1,5 +1,5 @@
-
+Test CustomTest Novel
@@ -42,231 +42,97 @@
-
- Novel
- ROOT
- NOVEL
- New
- False
+
+
+ Novel
-
- Plot
- ROOT
- PLOT
- New
- False
+
+
+ Plot
-
- Characters
- ROOT
- CHARACTER
- New
- False
+
+
+ Characters
-
- Locations
- ROOT
- WORLD
- New
- False
+
+
+ Locations
-
- Timeline
- ROOT
- TIMELINE
- New
- False
+
+
+ Timeline
-
- Objects
- ROOT
- OBJECT
- New
- False
+
+
+ Objects
-
- Entities
- ROOT
- ENTITY
- New
- False
+
+
+ Entities
-
- Title Page
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ Title Page
-
- Chapter 1
- FOLDER
- NOVEL
- New
- False
+
+
+ Chapter 1
-
- Chapter 1
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ Chapter 1
-
- Scene 1.1
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ Scene 1.1
-
- Scene 1.2
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ Scene 1.2
-
- Scene 1.3
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ Scene 1.3
-
- Chapter 2
- FOLDER
- NOVEL
- New
- False
+
+
+ Chapter 2
-
- Chapter 2
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ Chapter 2
-
- Scene 2.1
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ Scene 2.1
-
- Scene 2.2
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ Scene 2.2
-
- Scene 2.3
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ Scene 2.3
-
- Chapter 3
- FOLDER
- NOVEL
- New
- False
+
+
+ Chapter 3
-
- Chapter 3
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ Chapter 3
-
- Scene 3.1
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ Scene 3.1
-
- Scene 3.2
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ Scene 3.2
-
- Scene 3.3
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ Scene 3.3
diff --git a/tests/reference/coreProject_NewCustomB_nwProject.nwx b/tests/reference/coreProject_NewCustomB_nwProject.nwx
index 2afad85a..3f55663e 100644
--- a/tests/reference/coreProject_NewCustomB_nwProject.nwx
+++ b/tests/reference/coreProject_NewCustomB_nwProject.nwx
@@ -1,5 +1,5 @@
-
+Test CustomTest Novel
@@ -42,138 +42,61 @@
-
- Novel
- ROOT
- NOVEL
- New
- False
+
+
+ Novel
-
- Plot
- ROOT
- PLOT
- New
- False
+
+
+ Plot
-
- Characters
- ROOT
- CHARACTER
- New
- False
+
+
+ Characters
-
- Locations
- ROOT
- WORLD
- New
- False
+
+
+ Locations
-
- Timeline
- ROOT
- TIMELINE
- New
- False
+
+
+ Timeline
-
- Objects
- ROOT
- OBJECT
- New
- False
+
+
+ Objects
-
- Entities
- ROOT
- ENTITY
- New
- False
+
+
+ Entities
-
- Title Page
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ Title Page
-
- Scene 1
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ Scene 1
-
- Scene 2
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ Scene 2
-
- Scene 3
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ Scene 3
-
- Scene 4
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ Scene 4
-
- Scene 5
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ Scene 5
-
- Scene 6
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ Scene 6
diff --git a/tests/reference/coreProject_NewFile_nwProject.nwx b/tests/reference/coreProject_NewFile_nwProject.nwx
index 88c9aafb..d623ee2d 100644
--- a/tests/reference/coreProject_NewFile_nwProject.nwx
+++ b/tests/reference/coreProject_NewFile_nwProject.nwx
@@ -1,5 +1,5 @@
-
+New Project
@@ -40,100 +40,45 @@
-
- Novel
- ROOT
- NOVEL
- New
- False
+
+
+ Novel
-
- Plot
- ROOT
- PLOT
- New
- False
+
+
+ Plot
-
- Characters
- ROOT
- CHARACTER
- New
- False
+
+
+ Characters
-
- World
- ROOT
- WORLD
- New
- False
+
+
+ World
-
- Title Page
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ Title Page
-
- New Chapter
- FOLDER
- NOVEL
- New
- False
+
+
+ New Chapter
-
- New Chapter
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ New Chapter
-
- New Scene
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ New Scene
-
- Hello
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ Hello
-
- Jane
- FILE
- CHARACTER
- New
- True
- NOTE
- 0
- 0
- 0
- 0
+
+
+ Jane
diff --git a/tests/reference/coreProject_NewMinimal_nwProject.nwx b/tests/reference/coreProject_NewMinimal_nwProject.nwx
index d3702a07..6becb112 100644
--- a/tests/reference/coreProject_NewMinimal_nwProject.nwx
+++ b/tests/reference/coreProject_NewMinimal_nwProject.nwx
@@ -1,5 +1,5 @@
-
+New Project
@@ -40,76 +40,37 @@
-
- Novel
- ROOT
- NOVEL
- New
- False
+
+
+ Novel
-
- Plot
- ROOT
- PLOT
- New
- False
+
+
+ Plot
-
- Characters
- ROOT
- CHARACTER
- New
- False
+
+
+ Characters
-
- World
- ROOT
- WORLD
- New
- False
+
+
+ World
-
- Title Page
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ Title Page
-
- New Chapter
- FOLDER
- NOVEL
- New
- False
+
+
+ New Chapter
-
- New Chapter
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ New Chapter
-
- New Scene
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ New Scene
diff --git a/tests/reference/coreProject_NewRoot_nwProject.nwx b/tests/reference/coreProject_NewRoot_nwProject.nwx
index 9d74dc3c..cf55336e 100644
--- a/tests/reference/coreProject_NewRoot_nwProject.nwx
+++ b/tests/reference/coreProject_NewRoot_nwProject.nwx
@@ -1,5 +1,5 @@
-
+New Project
@@ -39,133 +39,54 @@
Main
-
-
- Novel
- ROOT
- NOVEL
- New
- False
+
+
+
+ Novel
-
- Plot
- ROOT
- PLOT
- New
- False
+
+
+ Plot
-
- Characters
- ROOT
- CHARACTER
- New
- False
+
+
+ Characters
-
- World
- ROOT
- WORLD
- New
- False
+
+
+ World
-
- Title Page
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ Title Page
-
- New Chapter
- FOLDER
- NOVEL
- New
- False
+
+
+ New Chapter
-
- New Chapter
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ New Chapter
-
- New Scene
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 0
- 0
- 0
- 0
+
+
+ New Scene
-
- Novel
- ROOT
- NOVEL
- New
- False
+
+
+ Timeline
-
- Plot
- ROOT
- PLOT
- New
- False
+
+
+ Object
-
- Character
- ROOT
- CHARACTER
- New
- False
+
+
+ Custom1
-
- World
- ROOT
- WORLD
- New
- False
-
-
- Timeline
- ROOT
- TIMELINE
- New
- False
-
-
- Object
- ROOT
- OBJECT
- New
- False
-
-
- Custom1
- ROOT
- CUSTOM
- New
- False
-
-
- Custom2
- ROOT
- CUSTOM
- New
- False
+
+
+ Custom2
diff --git a/tests/reference/guiEditor_Main_Final_nwProject.nwx b/tests/reference/guiEditor_Main_Final_nwProject.nwx
index 1111c579..4dd43b9a 100644
--- a/tests/reference/guiEditor_Main_Final_nwProject.nwx
+++ b/tests/reference/guiEditor_Main_Final_nwProject.nwx
@@ -1,11 +1,11 @@
-
+New Project52
- 4
+ 3True
@@ -40,119 +40,53 @@
-
- Novel
- ROOT
- NOVEL
- New
- True
+
+
+ Novel
-
- Title Page
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 11
- 2
- 0
- 0
+
+
+ Title Page
-
- New Chapter
- FOLDER
- NOVEL
- New
- True
+
+
+ New Chapter
-
- New Chapter
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 11
- 2
- 0
- 0
+
+
+ New Chapter
-
- New Scene
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 612
- 95
- 10
- 768
+
+
+ New Scene
-
- Plot
- ROOT
- PLOT
- New
- True
+
+
+ Plot
-
- New File
- FILE
- PLOT
- New
- True
- NOTE
- 48
- 10
- 1
- 69
+
+
+ New File
-
- Characters
- ROOT
- CHARACTER
- New
- True
+
+
+ Characters
-
- New File
- FILE
- CHARACTER
- New
- True
- NOTE
- 34
- 8
- 1
- 51
+
+
+ New File
-
- World
- ROOT
- WORLD
- New
- True
+
+
+ World
-
- New File
- FILE
- WORLD
- New
- True
- NOTE
- 51
- 9
- 1
- 68
+
+
+ New File
-
- Trash
- TRASH
- TRASH
- None
- True
+
+
+ Trash
diff --git a/tests/reference/guiEditor_Main_Initial_nwProject.nwx b/tests/reference/guiEditor_Main_Initial_nwProject.nwx
index 7d2cfe5f..f1b17740 100644
--- a/tests/reference/guiEditor_Main_Initial_nwProject.nwx
+++ b/tests/reference/guiEditor_Main_Initial_nwProject.nwx
@@ -1,5 +1,5 @@
-
+New Project
@@ -40,76 +40,37 @@
-
- Novel
- ROOT
- NOVEL
- New
- False
+
+
+ Novel
-
- Title Page
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 11
- 2
- 0
- 0
+
+
+ Title Page
-
- New Chapter
- FOLDER
- NOVEL
- New
- False
+
+
+ New Chapter
-
- New Chapter
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 11
- 2
- 0
- 0
+
+
+ New Chapter
-
- New Scene
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 9
- 2
- 0
- 0
+
+
+ New Scene
-
- Plot
- ROOT
- PLOT
- New
- False
+
+
+ Plot
-
- Characters
- ROOT
- CHARACTER
- New
- False
+
+
+ Characters
-
- World
- ROOT
- WORLD
- New
- False
+
+
+ World
diff --git a/tests/reference/guiProjSettings_Dialog_nwProject.nwx b/tests/reference/guiProjSettings_Dialog_nwProject.nwx
index 96334e16..b88e7f17 100644
--- a/tests/reference/guiProjSettings_Dialog_nwProject.nwx
+++ b/tests/reference/guiProjSettings_Dialog_nwProject.nwx
@@ -1,5 +1,5 @@
-
+Project NameProject Title
@@ -46,76 +46,37 @@
-
- Novel
- ROOT
- NOVEL
- New
- False
+
+
+ Novel
-
- Title Page
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 11
- 2
- 0
- 0
+
+
+ Title Page
-
- New Chapter
- FOLDER
- NOVEL
- New
- False
+
+
+ New Chapter
-
- New Chapter
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 11
- 2
- 0
- 0
+
+
+ New Chapter
-
- New Scene
- FILE
- NOVEL
- New
- True
- DOCUMENT
- 9
- 2
- 0
- 0
+
+
+ New Scene
-
- Plot
- ROOT
- PLOT
- New
- False
+
+
+ Plot
-
- Characters
- ROOT
- CHARACTER
- New
- False
+
+
+ Characters
-
- World
- ROOT
- WORLD
- New
- False
+
+
+ World
diff --git a/tests/test_base/test_base_common.py b/tests/test_base/test_base_common.py
index 5b9b9c13..f5eef8fe 100644
--- a/tests/test_base/test_base_common.py
+++ b/tests/test_base/test_base_common.py
@@ -24,8 +24,6 @@ import os
import time
import pytest
-from datetime import datetime
-
from mock import causeOSError
from tools import writeFile
@@ -33,9 +31,9 @@ from novelwriter.guimain import GuiMain
from novelwriter.common import (
checkString, checkInt, checkFloat, checkBool, checkHandle, isHandle,
isTitleTag, isItemClass, isItemType, isItemLayout, hexToInt, checkIntRange,
- checkIntTuple, formatInt, formatTimeStamp, formatTime, parseTimeStamp,
- splitVersionNumber, transferCase, fuzzyTime, numberToRoman, jsonEncode,
- readTextFile, makeFileNameSafe, sha256sum, getGuiItem, NWConfigParser
+ checkIntTuple, formatInt, formatTimeStamp, formatTime, splitVersionNumber,
+ transferCase, fuzzyTime, numberToRoman, jsonEncode, readTextFile,
+ makeFileNameSafe, sha256sum, getGuiItem, NWConfigParser
)
@@ -272,21 +270,6 @@ def testBaseCommon_FormatTime():
# END Test testBaseCommon_FormatTime
-@pytest.mark.base
-def testBaseCommon_ParseTimeStamp():
- """Test the parseTimeStamp function.
- """
- localEpoch = datetime(2000, 1, 1).timestamp()
- assert parseTimeStamp(None, 0.0, allowNone=True) is None
- assert parseTimeStamp("None", 0.0, allowNone=True) is None
- assert parseTimeStamp("None", 0.0) == 0.0
- assert parseTimeStamp("2000-01-01 00:00:00", 123.0) == localEpoch
- assert parseTimeStamp("2000-13-01 00:00:00", 123.0) == 123.0
- assert parseTimeStamp("2000-01-32 00:00:00", 123.0) == 123.0
-
-# END Test testBaseCommon_ParseTimeStamp
-
-
@pytest.mark.base
def testBaseCommon_SplitVersionNumber():
"""Test the splitVersionNumber function.
diff --git a/tests/test_core/test_core_item.py b/tests/test_core/test_core_item.py
index dea2b3c7..368592f1 100644
--- a/tests/test_core/test_core_item.py
+++ b/tests/test_core/test_core_item.py
@@ -306,22 +306,6 @@ def testCoreItem_LayoutSetter(mockGUI):
theItem.setLayout("NOTE")
assert theItem.itemLayout == nwItemLayout.NOTE
- # Deprecated Layouts
- theItem.setLayout("TITLE")
- assert theItem.itemLayout == nwItemLayout.DOCUMENT
- theItem.setLayout("PAGE")
- assert theItem.itemLayout == nwItemLayout.DOCUMENT
- theItem.setLayout("BOOK")
- assert theItem.itemLayout == nwItemLayout.DOCUMENT
- theItem.setLayout("PARTITION")
- assert theItem.itemLayout == nwItemLayout.DOCUMENT
- theItem.setLayout("UNNUMBERED")
- assert theItem.itemLayout == nwItemLayout.DOCUMENT
- theItem.setLayout("CHAPTER")
- assert theItem.itemLayout == nwItemLayout.DOCUMENT
- theItem.setLayout("SCENE")
- assert theItem.itemLayout == nwItemLayout.DOCUMENT
-
# Alternatives
theItem.setLayout(nwItemLayout.NOTE)
assert theItem.itemLayout == nwItemLayout.NOTE
@@ -358,12 +342,9 @@ def testCoreItem_XMLPackUnpack(mockGUI, caplog):
xContent = etree.SubElement(nwXML, "content")
theItem.packXML(xContent)
assert etree.tostring(xContent, pretty_print=False, encoding="utf-8") == (
- b""
- b""
- b"A NameFILENOVELNew"
- b"FalseNOTE7"
- b"5311"
- b""
+ b'A Name'
)
# Unpack
@@ -404,11 +385,8 @@ def testCoreItem_XMLPackUnpack(mockGUI, caplog):
xContent = etree.SubElement(nwXML, "content")
theItem.packXML(xContent)
assert etree.tostring(xContent, pretty_print=False, encoding="utf-8") == (
- b""
- b""
- b"A NameFOLDERNOVELNew"
- b"True"
- b""
+ b'A Name'
)
# Unpack
@@ -462,3 +440,107 @@ def testCoreItem_XMLPackUnpack(mockGUI, caplog):
)
# END Test testCoreItem_XMLPackUnpack
+
+
+@pytest.mark.core
+def testCoreItem_ConvertFromFmt12(mockGUI):
+ """Test the setter for all the nwItemLayout values for the NWItem
+ class using the class names that were present in file format 1.2.
+ """
+ theProject = NWProject(mockGUI)
+ theItem = NWItem(theProject)
+
+ # Deprecated Layouts
+ theItem.setLayout("TITLE")
+ assert theItem.itemLayout == nwItemLayout.DOCUMENT
+ theItem.setLayout("PAGE")
+ assert theItem.itemLayout == nwItemLayout.DOCUMENT
+ theItem.setLayout("BOOK")
+ assert theItem.itemLayout == nwItemLayout.DOCUMENT
+ theItem.setLayout("PARTITION")
+ assert theItem.itemLayout == nwItemLayout.DOCUMENT
+ theItem.setLayout("UNNUMBERED")
+ assert theItem.itemLayout == nwItemLayout.DOCUMENT
+ theItem.setLayout("CHAPTER")
+ assert theItem.itemLayout == nwItemLayout.DOCUMENT
+ theItem.setLayout("SCENE")
+ assert theItem.itemLayout == nwItemLayout.DOCUMENT
+ theItem.setLayout("MUMBOJUMBO")
+ assert theItem.itemLayout == nwItemLayout.NO_LAYOUT
+
+# END Test testCoreItem_ConvertFromFmt12
+
+
+@pytest.mark.core
+def testCoreItem_ConvertFromFmt13(mockGUI):
+ """Test packing and unpacking XML objects for the NWItem class from
+ format version 1.3
+ """
+ theProject = NWProject(mockGUI)
+
+ # Make Version 1.3 XML
+ nwXML = etree.Element("novelWriterXML")
+ xContent = etree.SubElement(nwXML, "content")
+
+ # Folder
+ xPack = etree.SubElement(xContent, "item", attrib={
+ "handle": "a000000000001",
+ "order": "1",
+ "parent": "b000000000001",
+ })
+ NWItem._subPack(xPack, "name", text="Folder")
+ NWItem._subPack(xPack, "type", text="FOLDER")
+ NWItem._subPack(xPack, "class", text="NOVEL")
+ NWItem._subPack(xPack, "status", text="New")
+ NWItem._subPack(xPack, "expanded", text="True")
+
+ # Unpack Folder
+ theItem = NWItem(theProject)
+ theItem.unpackXML(xContent[0])
+ assert theItem.itemHandle == "a000000000001"
+ assert theItem.itemParent == "b000000000001"
+ assert theItem.itemOrder == 1
+ assert theItem.isExpanded is True
+ assert theItem.isExported is True
+ assert theItem.charCount == 0
+ assert theItem.wordCount == 0
+ assert theItem.paraCount == 0
+ assert theItem.cursorPos == 0
+ assert theItem.itemClass == nwItemClass.NOVEL
+ assert theItem.itemType == nwItemType.FOLDER
+ assert theItem.itemLayout == nwItemLayout.NO_LAYOUT
+
+ # File
+ xPack = etree.SubElement(xContent, "item", attrib={
+ "handle": "c000000000001",
+ "order": "2",
+ "parent": "a000000000001",
+ })
+ NWItem._subPack(xPack, "name", text="Scene")
+ NWItem._subPack(xPack, "type", text="FILE")
+ NWItem._subPack(xPack, "class", text="NOVEL")
+ NWItem._subPack(xPack, "status", text="New")
+ NWItem._subPack(xPack, "exported", text="True")
+ NWItem._subPack(xPack, "layout", text="DOCUMENT")
+ NWItem._subPack(xPack, "charCount", text="600")
+ NWItem._subPack(xPack, "wordCount", text="100")
+ NWItem._subPack(xPack, "paraCount", text="6")
+ NWItem._subPack(xPack, "cursorPos", text="50")
+
+ # Unpack File
+ theItem = NWItem(theProject)
+ theItem.unpackXML(xContent[1])
+ assert theItem.itemHandle == "c000000000001"
+ assert theItem.itemParent == "a000000000001"
+ assert theItem.itemOrder == 2
+ assert theItem.isExpanded is False
+ assert theItem.isExported is True
+ assert theItem.charCount == 600
+ assert theItem.wordCount == 100
+ assert theItem.paraCount == 6
+ assert theItem.cursorPos == 50
+ assert theItem.itemClass == nwItemClass.NOVEL
+ assert theItem.itemType == nwItemType.FILE
+ assert theItem.itemLayout == nwItemLayout.DOCUMENT
+
+# END Test testCoreItem_ConvertFromFmt13
diff --git a/tests/test_core/test_core_tokenizer.py b/tests/test_core/test_core_tokenizer.py
index 0c57214b..d277a601 100644
--- a/tests/test_core/test_core_tokenizer.py
+++ b/tests/test_core/test_core_tokenizer.py
@@ -28,12 +28,17 @@ from novelwriter.core import NWProject, NWDoc
from novelwriter.core.tokenizer import Tokenizer
+class BareTokenizer(Tokenizer):
+ def doConvert(self):
+ pass
+
+
@pytest.mark.core
def testCoreToken_Setters(mockGUI):
"""Test all the setters for the Tokenizer class.
"""
theProject = NWProject(mockGUI)
- theToken = Tokenizer(theProject)
+ theToken = BareTokenizer(theProject)
# Verify defaults
assert theToken._fmtTitle == "%title%"
@@ -135,7 +140,7 @@ def testCoreToken_TextOps(monkeypatch, nwMinimal, mockGUI):
theProject.projLang = "en"
theProject._loadProjectLocalisation()
- theToken = Tokenizer(theProject)
+ theToken = BareTokenizer(theProject)
theToken.setKeepMarkdown(True)
assert theProject.openProject(nwMinimal)
@@ -222,7 +227,7 @@ def testCoreToken_HeaderFormat(mockGUI):
"""Test the tokenization of header formats in the Tokenizer class.
"""
theProject = NWProject(mockGUI)
- theToken = Tokenizer(theProject)
+ theToken = BareTokenizer(theProject)
theToken.setKeepMarkdown(True)
# Title
@@ -426,7 +431,7 @@ def testCoreToken_MetaFormat(mockGUI):
"""Test the tokenization of meta formats in the Tokenizer class.
"""
theProject = NWProject(mockGUI)
- theToken = Tokenizer(theProject)
+ theToken = BareTokenizer(theProject)
theToken.setKeepMarkdown(True)
# Comment
@@ -495,7 +500,7 @@ def testCoreToken_MarginFormat(mockGUI):
"""Test the tokenization of margin formats in the Tokenizer class.
"""
theProject = NWProject(mockGUI)
- theToken = Tokenizer(theProject)
+ theToken = BareTokenizer(theProject)
theToken.setKeepMarkdown(True)
# Alignment and Indentation
@@ -550,7 +555,7 @@ def testCoreToken_TextFormat(mockGUI):
"""Test the tokenization of text formats in the Tokenizer class.
"""
theProject = NWProject(mockGUI)
- theToken = Tokenizer(theProject)
+ theToken = BareTokenizer(theProject)
theToken.setKeepMarkdown(True)
# Text
@@ -672,7 +677,7 @@ def testCoreToken_SpecialFormat(mockGUI):
"""Test the tokenization of special formats in the Tokenizer class.
"""
theProject = NWProject(mockGUI)
- theToken = Tokenizer(theProject)
+ theToken = BareTokenizer(theProject)
theToken._isNovel = True
@@ -877,7 +882,7 @@ def testCoreToken_ProcessHeaders(mockGUI):
theProject = NWProject(mockGUI)
theProject.projLang = "en"
theProject._loadProjectLocalisation()
- theToken = Tokenizer(theProject)
+ theToken = BareTokenizer(theProject)
# Nothing
theToken._theText = "Some text ...\n"
diff --git a/tests/test_core/test_core_tree.py b/tests/test_core/test_core_tree.py
index 51cb6d2a..66d76459 100644
--- a/tests/test_core/test_core_tree.py
+++ b/tests/test_core/test_core_tree.py
@@ -379,36 +379,29 @@ def testCoreTree_XMLPackUnpack(mockGUI, mockItems):
nwXML = etree.Element("novelWriterXML")
theTree.packXML(nwXML)
assert etree.tostring(nwXML, pretty_print=False, encoding="utf-8") == (
- b""
- b""
- b""
- b"NovelROOTNOVELNone"
- b"True"
- b""
- b"Act OneFOLDERNOVELNone"
- b"True"
- b""
- b"Chapter OneFILENOVELNone"
- b"TrueDOCUMENT300"
- b"5020"
- b""
- b"Scene OneFILENOVELNone"
- b"TrueDOCUMENT3000"
- b"500200"
- b""
- b"OuttakesROOTARCHIVENone"
- b"False"
- b""
- b"TrashTRASHTRASHNone"
- b"False"
- b""
- b"CharactersROOTCHARACTERNone"
- b"True"
- b""
- b"Jane DoeFILECHARACTERNone"
- b"TrueNOTE2000"
- b"400160"
- b""
+ b''
+ b''
+ b''
+ b'Novel'
+ b'Act One'
+ b''
+ b'Chapter One'
+ b''
+ b'Scene One'
+ b''
+ b'Outtakes'
+ b''
+ b'Trash'
+ b''
+ b'Characters'
+ b'Jane Doe'
+ b''
+ b''
)
theTree.clear()
diff --git a/tests/test_gui/test_gui_doceditor.py b/tests/test_gui/test_gui_doceditor.py
index 241acd24..8057ca41 100644
--- a/tests/test_gui/test_gui_doceditor.py
+++ b/tests/test_gui/test_gui_doceditor.py
@@ -1286,13 +1286,13 @@ def testGuiEditor_Search(qtbot, monkeypatch, nwGUI, nwLipsum):
monkeypatch.setattr(GuiDocEditor, "hasFocus", lambda *a: True)
nwGUI.theProject.projTree.setSeed(42)
- assert nwGUI.openProject(nwLipsum)
- assert nwGUI.openDocument("4c4f28287af27")
+ assert nwGUI.openProject(nwLipsum) is True
+ assert nwGUI.openDocument("4c4f28287af27") is True
origText = nwGUI.docEditor.getText()
qtbot.wait(stepDelay)
# Select the Word "est"
- assert nwGUI.docEditor.setCursorPosition(630)
+ nwGUI.docEditor.setCursorPosition(630)
nwGUI.docEditor._makeSelection(QTextCursor.WordUnderCursor)
theCursor = nwGUI.docEditor.textCursor()
assert theCursor.selectedText() == "est"
@@ -1331,7 +1331,7 @@ def testGuiEditor_Search(qtbot, monkeypatch, nwGUI, nwLipsum):
assert nwGUI.docEditor.docSearch.isVisible() is True
# Search for non-existing
- assert nwGUI.docEditor.setCursorPosition(0)
+ nwGUI.docEditor.setCursorPosition(0)
assert nwGUI.docEditor.docSearch.setSearchText("abcdef")
qtbot.mouseClick(nwGUI.docEditor.docSearch.searchButton, Qt.LeftButton, delay=keyDelay)
assert nwGUI.docEditor.getCursorPosition() < 3 # No result
@@ -1342,11 +1342,18 @@ def testGuiEditor_Search(qtbot, monkeypatch, nwGUI, nwLipsum):
assert nwGUI.docEditor.docSearch.isRegEx is True
# Set invalid RegEx
- assert nwGUI.docEditor.setCursorPosition(0)
+ nwGUI.docEditor.setCursorPosition(0)
assert nwGUI.docEditor.docSearch.setSearchText(r"\bSus[")
qtbot.mouseClick(nwGUI.docEditor.docSearch.searchButton, Qt.LeftButton, delay=keyDelay)
assert nwGUI.docEditor.getCursorPosition() < 3 # No result
+ # Set dangerous RegEx (issue #1015)
+ # If this doesn't get caught, the app will hang
+ nwGUI.docEditor.setCursorPosition(0)
+ assert nwGUI.docEditor.docSearch.setSearchText(r".*")
+ qtbot.mouseClick(nwGUI.docEditor.docSearch.searchButton, Qt.LeftButton, delay=keyDelay)
+ assert abs(nwGUI.docEditor.getCursorPosition() - 14) < 3
+
# Set valid RegEx
assert nwGUI.docEditor.docSearch.setSearchText(r"\bSus")
qtbot.mouseClick(nwGUI.docEditor.docSearch.searchButton, Qt.LeftButton, delay=keyDelay)