Merge branch 'main' into dev

This commit is contained in:
Veronica Berglyd Olsen
2024-03-10 14:09:51 +01:00
42 changed files with 4433 additions and 4545 deletions
+59
View File
@@ -1,5 +1,64 @@
# novelWriter Changelog # novelWriter Changelog
## Version 2.3 [2024-03-10]
### Release Notes
This release introduces a new Welcome dialog that replaces both the previous Open Project dialog
and the New Project Wizard. The Welcome dialog has received a friendly custom art design created by
Louis Durrant.
The Preferences, Project Settings, Project Details, and About dialogs have received completely new
designs and layouts, and the Manuscript Build Settings dialog has been updated to match.
Among new features is a new Templates root folder where the writer can store template documents to
be used when creating new project documents and notes. It is now also possible to include Point of
View and Focus character names in chapter titles in Manuscripts. A new feature to ignore text has
also been added. It behaves similarly to comments, but is never included in a manuscript even if
comments in the manuscript are enabled.
See the website for complete [Release Notes](https://novelwriter.io/releases/release_2_3.html).
### Detailed Changelog
**Bugfixes**
* Fix an issue where the Tags and References panel below the document viewer was not cleared if a
project was opened, closed, and a new project with no tags defined were opened again. PR #1720.
Issue #1718.
* Fixed an issue where multi-selecting documents in Trash would give the option to again move items
to Trash. The menu now properly offers the option to permanently delete the documents. PR #1728.
* Fixed an issue where multi-select for deletion would only process the item right-clicked, and not
all the selected items. PR #1728.
* Changed the error message that pops up when trying to open a project from the Welcome dialog that
no longer exists. The error message should no indicate that the project was not found, as opposed
to unreadable. PR #1740. Issue #1737.
**Improvements**
* The build tool no longer inserts a scene separator immediately after a partition heading, and
should now behave the same way as for chapters. If there is text before the first scene break,
the text flows continuously without a separator. PR #1716. Issue #1704.
* Added one new GUI theme named "Cyberpunk Night" by @alemvigh. Also added a matching "Cyberpunk
Night" document editor theme by @alemvigh, and a new Tango theme by @vkbo. PR #1738. Issue #1730.
* When the Welcome dialog fails to open a project, and there is not already a project open in the
app, the Welcome dialog appears again. PR #1740. Issue #1737.
**Internationalisation**
* Norwegian and US English translations updated by @vkbo. PR #1714.
* Japanese translation updated by @hebekeg. PR #1714.
* Italian translation updated by Lou Cyper (loucyper1). PR #1714.
* Dutch translation updated by Annelotte and Martijn van der Kleijn (mvdkleijn). PR #1714.
* Latin American Spanish translation updated by @tmarplatt. PR #1741.
* German translation updated by Myian (@HeyMyian). PR #1741.
**Other Changes**
* Removed the novelwriter-cli entry point that was in any case broken. PR #1734. Issue #1732.
----
## Version 2.3 RC 1 [2024-02-24] ## Version 2.3 RC 1 [2024-02-24]
### Release Notes ### Release Notes
Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

+6 -5
View File
@@ -5,9 +5,9 @@ novelWriter User Guide
| **Release Version:** |release| | **Release Version:** |release|
| **Updated:** |today| | **Updated:** |today|
novelWriter is an open source plain text editor designed for writing novels assembled from many novelWriter is an open source plain text editor designed for writing novels assembled from
smaller text documents. It uses a minimal formatting syntax inspired by Markdown, and adds a meta individual text documents. It uses a minimal formatting syntax inspired by Markdown, and adds a
data syntax for comments, synopsis, and cross-referencing. It is designed to be a simple text meta data syntax for comments, synopsis, and cross-referencing. It is designed to be a simple text
editor that allows for easy organisation of text and notes, using human readable text files as editor that allows for easy organisation of text and notes, using human readable text files as
storage for robustness. storage for robustness.
@@ -23,13 +23,14 @@ See the :ref:`a_breakdown_storage` section for more details.
Any operating system that can run Python 3 and has the Qt 5 libraries should be able to run Any operating system that can run Python 3 and has the Qt 5 libraries should be able to run
novelWriter. It runs fine on Linux, Windows and MacOS, and users have tested it on other platforms novelWriter. It runs fine on Linux, Windows and MacOS, and users have tested it on other platforms
as well. novelWriter can also be run directly from the Python source, or installed from packages or as well. novelWriter can be run directly from the Python source, or installed from packages or with
with pip. See :ref:`a_started` for more details. pip. See :ref:`a_started` for more details.
**Useful Links** **Useful Links**
* Website: https://novelwriter.io * Website: https://novelwriter.io
* Documentation: https://docs.novelwriter.io * Documentation: https://docs.novelwriter.io
* Public Releases: https://releases.novelwriter.io
* Internationalisation: https://crowdin.com/project/novelwriter * Internationalisation: https://crowdin.com/project/novelwriter
* Source Code: https://github.com/vkbo/novelWriter * Source Code: https://github.com/vkbo/novelWriter
* Source Releases: https://github.com/vkbo/novelWriter/releases * Source Releases: https://github.com/vkbo/novelWriter/releases
+8 -7
View File
@@ -36,7 +36,8 @@ and add dictionaries yourself.
A small tool to assist with this can be found under :guilabel:`Tools > Add Dictionaries`. It will A small tool to assist with this can be found under :guilabel:`Tools > Add Dictionaries`. It will
import spell checking dictionaries from Free Office or Libre Office extensions. The dictionaries import spell checking dictionaries from Free Office or Libre Office extensions. The dictionaries
are then installed in the install location for the Enchant library. are then installed in the install location for the Enchant library and should thus work for any
application that uses Enchant for spell checking.
**Manual Install** **Manual Install**
@@ -139,10 +140,10 @@ In the Main section you must at least define the ``name`` and ``icontheme`` sett
``typicons_light`` or ``typicons_dark``, or to an icon theme in your custom icons directory. The ``typicons_light`` or ``typicons_dark``, or to an icon theme in your custom icons directory. The
setting must match the icon theme's folder name. setting must match the icon theme's folder name.
The Palette values correspond to the Qt enum values for QPalette::ColorRole, see the The Palette values correspond to the Qt enum values for ``QPalette::ColorRole``, see the
`Qt documentation <https://doc.qt.io/qt-5.15/qpalette.html#ColorRole-enum>`_ for more details. The `Qt documentation <https://doc.qt.io/qt-5.15/qpalette.html#ColorRole-enum>`_ for more details. The
colour values are RGB numbers on the format ``r, g, b`` where each is an integer from to 255. colour values are RGB numbers on the format ``r, g, b`` where each is an integer from ``0`` to
Omitted values are not loaded and will use default values. ``255``. Omitted values are not loaded and will use default values.
Custom Syntax Theme Custom Syntax Theme
@@ -182,11 +183,11 @@ A syntax theme ``.conf`` file consists of the following settings:
texthighlight = 255, 255, 255, 128 texthighlight = 255, 255, 255, 128
In the Main section, you must define at least the ``name`` setting. The Syntax colour values are In the Main section, you must define at least the ``name`` setting. The Syntax colour values are
RGB(A) numbers of the format ``r, g, b, a`` where each is an integer from to 255. The fourth value RGB(A) numbers of the format ``r, g, b, a`` where each is an integer from ``0`` to ``255``. The
is the alpha channel, which can be omitted. fourth value is the alpha channel, which can be omitted.
Omitted syntax colours default to black, except ``background`` which defaults to white, and Omitted syntax colours default to black, except ``background`` which defaults to white, and
``texthighlight`` which defaults to grey. ``texthighlight`` which defaults to white with half transparency.
.. versionadded:: 2.2 .. versionadded:: 2.2
The `shortcode` syntax colour entry was added. The `shortcode` syntax colour entry was added.
+1 -1
View File
@@ -50,7 +50,7 @@ Glossary
Headings Headings
Each level of headings in :term:`Novel Documents` have a specific meaning in terms of the Each level of headings in :term:`Novel Documents` have a specific meaning in terms of the
structure of the story. That is, they determine what novelWriter considers a partition, a structure of the story. That is, they determine what novelWriter considers a partition, a
chapter, a scene or a text section. For :term:`Project Notes`, the header levels don't chapter, a scene or a text section. For :term:`Project Notes`, the heading levels don't
matter. For more details on headings in novel documents, see :ref:`a_struct_heads`. matter. For more details on headings in novel documents, see :ref:`a_struct_heads`.
Keyword Keyword
+10 -5
View File
@@ -25,7 +25,7 @@ Managing the Project
:guilabel:`Merge Documents in Folder`. :guilabel:`Merge Documents in Folder`.
In the dialog that pops up, the documents will be in the same order as in the folder, but you In the dialog that pops up, the documents will be in the same order as in the folder, but you
can also rearrange them here of you wish. See :ref:`a_ui_tree_split_merge` for more details. can rearrange them here of you wish. See :ref:`a_ui_tree_split_merge` for more details.
Layout Tricks Layout Tricks
@@ -42,7 +42,7 @@ Layout Tricks
in columns using the tab key, and it should look the same when viewed next to the editor. in columns using the tab key, and it should look the same when viewed next to the editor.
This is most suitable for your notes, as the result in exported documents cannot be guaranteed This is most suitable for your notes, as the result in exported documents cannot be guaranteed
to match. to match. Especially if you don't use the same font in your manuscript as in the editor.
Organising Your Text Organising Your Text
@@ -56,7 +56,9 @@ Organising Your Text
If you add separate files for chapters and scenes, the chapter file is the perfect place to add If you add separate files for chapters and scenes, the chapter file is the perfect place to add
such text. Separating chapter and scene files also allows you to make scene files child such text. Separating chapter and scene files also allows you to make scene files child
documents of the chapter (added in novelWriter 2.0). documents of the chapter.
.. versionadded:: 2.0
.. dropdown:: Distinguishing Soft and Hard Scene Breaks .. dropdown:: Distinguishing Soft and Hard Scene Breaks
:animate: fade-in-slide-down :animate: fade-in-slide-down
@@ -64,12 +66,15 @@ Organising Your Text
Depending on your writing style, you may need to separate between soft and hard scene breaks Depending on your writing style, you may need to separate between soft and hard scene breaks
within chapters. Like for instance if you switch point-of-view character often. within chapters. Like for instance if you switch point-of-view character often.
In such cases you may want to use the scene heading for hard scene breaks and section headings In such cases you may want to use a scene heading for hard scene breaks and a section heading
for soft scene breaks. the :guilabel:`Build Manuscript` tool will let you add separate for soft scene breaks. The :guilabel:`Build Manuscript` tool will let you add separate
formatting for the two when you generate your manuscript. You can for instance add the common formatting for the two when you generate your manuscript. You can for instance add the common
"``* * *``" for hard breaks and select to hide section breaks, which will just insert an empty "``* * *``" for hard breaks and select to hide section breaks, which will just insert an empty
paragraph in their place. See :ref:`a_manuscript_settings` for more details. paragraph in their place. See :ref:`a_manuscript_settings` for more details.
Keep in mind that this is not what the section heading is intended for, so the app will not
understand the section heading as a scene, but it will be formatted correctly in the manuscript.
Other Tools Other Tools
=========== ===========
+24 -15
View File
@@ -8,9 +8,18 @@ Key Features
.. _Markdown: https://en.wikipedia.org/wiki/Markdown .. _Markdown: https://en.wikipedia.org/wiki/Markdown
At its core, novelWriter is a multi-document plain text editor. It uses a markup syntax inspired by At its core, novelWriter is a multi-document plain text editor. It uses a markup syntax inspired by
Markdown_ to apply simple formatting to the text. It is designed for writing fiction, so the Markdown_ to apply simple formatting to the text. It also allows for some extended formatting codes
formatting features available are limited to those relevant for this purpose. It is *not* suitable using a shortcode format. See :ref:`a_fmt_shortcodes` for more details.
for technical writing, and it is *not* a full-featured Markdown editor.
.. admonition:: Limitations
novelWriter is designed for writing fiction, so the formatting features available are limited to
those relevant for this purpose. It is **not** suitable for technical writing, and it is **not**
a full-featured Markdown editor.
It is also not intended as a tool to organise research for writing, and therefore lacks
formatting features you may need for this purpose. The notes feature in novelWriter is mainly
intended for character profiles and plot outlines.
Your novel project is organised as a collection of separate plain text documents instead of a Your novel project is organised as a collection of separate plain text documents instead of a
single, large document. The idea is to make it easier to reorganise your project structure without single, large document. The idea is to make it easier to reorganise your project structure without
@@ -20,10 +29,10 @@ There are two kinds of documents in your project: :term:`Novel Documents` are do
part of your story. The other kind of documents are :term:`Project Notes`. These are intended for part of your story. The other kind of documents are :term:`Project Notes`. These are intended for
your notes about your characters, your world building, and so on. your notes about your characters, your world building, and so on.
You can at any point split the individual documents by their headers up into multiple documents, or You can at any point split the individual documents by their headings up into multiple documents,
merge multiple documents into single documents. This makes it easier to use variations of the or merge multiple documents into single documents. This makes it easier to use variations of the
Snowflake_ method for writing. You can start by writing larger structure-focused documents, like Snowflake_ method for writing. You can start by writing larger structure-focused documents, like
one per act for instance, and later effortlessly split these up into scenes by their headers. one per act for instance, and later effortlessly split these up into chapters or scenes.
Below are some key features of novelWriter. Below are some key features of novelWriter.
@@ -45,15 +54,15 @@ Below are some key features of novelWriter.
build the project into a manuscript, they are all glued together in the top-to-bottom order in build the project into a manuscript, they are all glued together in the top-to-bottom order in
which they appear in the project tree. You can use as few text documents as you like, but which they appear in the project tree. You can use as few text documents as you like, but
splitting the project up into chapters and scenes means you can easily reorder them using the splitting the project up into chapters and scenes means you can easily reorder them using the
drag-and-drop feature of the project tree. You can also start out with a few documents and then drag-and-drop feature of the project tree. You can also start out with fewer documents and then
later split them into multiple documents based on their headers. later split them into multiple documents based on chapter and scene headings.
**Multi-novel project support** **Multi-novel project support**
As of novelWriter 2.0, you can have multiple Novel type root folders in a project. This allows You can have multiple Novel type root folders in a project. This allows you to keep a series of
you to keep a series of individual novels with the same characters and world building in the individual novels with the same characters and world building in the same project, and create
same project, and create manuscripts for them individually. manuscripts for them individually.
**Keep track of your plot elements** **Keep track of your story elements**
All notes in your project can be assigned a :term:`tag` that you can :term:`reference` from any All notes in your project can be assigned a :term:`tag` that you can :term:`reference` from any
other document or note. In fact, you can add a new tag under each heading of a note if you need other document or note. In fact, you can add a new tag under each heading of a note if you need
to be able to reference specific sections of it. to be able to reference specific sections of it.
@@ -69,10 +78,10 @@ Below are some key features of novelWriter.
**Get an overview of your story elements** **Get an overview of your story elements**
Under the document viewer panel you will find a series of tabs that shows the different story Under the document viewer panel you will find a series of tabs that shows the different story
elements you have created tags for. The tabs are sorted into Characters, Plots, etc, depending elements you have created tags for. The tabs are sorted into Characters, Plots, etc, depending
on which categories you are using in your story. This panel can be hidden when you don't need it on which categories you are using in your story. This panel can be hidden to free up space when
to free up space. you don't need it.
**Building your manuscript** **Assembling your manuscript**
Whether you want to assemble a manuscript, or export all your notes, or generate an outline of Whether you want to assemble a manuscript, or export all your notes, or generate an outline of
your chapters and scenes with a synopsis, you can use the :guilabel:`Build Manuscript` tool to your chapters and scenes with a synopsis, you can use the :guilabel:`Build Manuscript` tool to
do so. The tool lets you select what information you want to include in the generated document, do so. The tool lets you select what information you want to include in the generated document,
+11 -9
View File
@@ -11,9 +11,9 @@ Overview
:width: 220 :width: 220
novelWriter is built as a cross-platform application using `Python 3 <https://www.python.org/>`_ as novelWriter is built as a cross-platform application using `Python 3 <https://www.python.org/>`_ as
the programming language, and `Qt 5 <https://www.qt.io/>`_ for the user interface. the programming language, and `Qt 5 <https://www.qt.io/>`_ framework for the user interface.
novelWriter is built for Linux first, and this is where it works best. However, it also runs fine novelWriter is built for Linux first, so this is where it works best. However, it also runs fine
on Windows and MacOS due to the cross-platform framework it's built on. The author of the on Windows and MacOS due to the cross-platform framework it's built on. The author of the
application doesn't own a Mac, so on-going Mac support is dependent on user feedback and user application doesn't own a Mac, so on-going Mac support is dependent on user feedback and user
contributions. contributions.
@@ -22,7 +22,7 @@ Spell checking in novelWriter is provided by a third party library called
`Enchant <https://abiword.github.io/enchant/>`_. Please see the section on :ref:`a_custom_dict` for `Enchant <https://abiword.github.io/enchant/>`_. Please see the section on :ref:`a_custom_dict` for
how to install spell checking languages. how to install spell checking languages.
For install instructions, see :ref:`a_started`. For install instructions for novelWriter, see :ref:`a_started`.
Using novelWriter Using novelWriter
@@ -58,12 +58,6 @@ read on.
your language, and other special characters. If you use any symbols aside from these, their your language, and other special characters. If you use any symbols aside from these, their
intended use is explained here. intended use is explained here.
:ref:`a_prjfmt` Optional
This chapter is more technical and has an overview of changes made to the way your project data
is stored. The format has changed a bit from time to time, and sometimes the changes require
that you make small modifications to your project. Everything you need to know is listed in this
chapter.
Organising Your Projects Organising Your Projects
======================== ========================
@@ -90,3 +84,11 @@ meta data for it to extract.
:ref:`a_manuscript` - Recommended Reading :ref:`a_manuscript` - Recommended Reading
This chapter explains how the :guilabel:`Manuscript Build` tool works, how you can control the This chapter explains how the :guilabel:`Manuscript Build` tool works, how you can control the
way chapter titles are formatted, and how scene and section breaks are handled. way chapter titles are formatted, and how scene and section breaks are handled.
Additional Details & Technical Topics
=====================================
The Additional Details and the Technical Topics sections contain more in-depth information about
how various bits of novelWriter works. This information is not essential to getting started using
novelWriter.
+13 -12
View File
@@ -6,7 +6,7 @@ Getting Started
.. _Enchant: https://abiword.github.io/enchant/ .. _Enchant: https://abiword.github.io/enchant/
.. _GitHub: https://github.com/vkbo/novelWriter .. _GitHub: https://github.com/vkbo/novelWriter
.. _main website: https://novelwriter.io .. _Downloads page: https://download.novelwriter.io
.. _PPA: https://launchpad.net/~vkbo/+archive/ubuntu/novelwriter .. _PPA: https://launchpad.net/~vkbo/+archive/ubuntu/novelwriter
.. _Pre-Release PPA: https://launchpad.net/~vkbo/+archive/ubuntu/novelwriter-pre .. _Pre-Release PPA: https://launchpad.net/~vkbo/+archive/ubuntu/novelwriter-pre
.. _PyPi: https://pypi.org/project/novelWriter/ .. _PyPi: https://pypi.org/project/novelWriter/
@@ -15,9 +15,10 @@ Getting Started
.. _AppImage: https://appimage.org/ .. _AppImage: https://appimage.org/
Ready-made packages and installers for novelWriter are available for all major platforms, including Ready-made packages and installers for novelWriter are available for all major platforms, including
Linux, Windows and MacOS. See below for install instructions for each platform. Linux, Windows and MacOS, from the `Downloads page`_. See below for install instructions for each
platform.
You can also install novelWriter from the Python Package Index (PyPi). See :ref:`a_started_pip`. You can also install novelWriter from the Python Package Index (PyPi_). See :ref:`a_started_pip`.
Installing from PyPi does not set up icon launchers, so you will either have to do this yourself, Installing from PyPi does not set up icon launchers, so you will either have to do this yourself,
or start novelWriter from the command line. or start novelWriter from the command line.
@@ -32,7 +33,7 @@ Installing on Windows
===================== =====================
You can install novelWriter with both Python and library dependencies embedded using the Windows You can install novelWriter with both Python and library dependencies embedded using the Windows
Installer (setup.exe) file from the `main website`_, or from the Releases_ page on GitHub_. Installer (setup.exe) file from the `Downloads page`_, or from the Releases_ page on GitHub_.
Installing it should be straightforward. Installing it should be straightforward.
If you have any issues, try uninstalling the previous version and making a fresh install. If you If you have any issues, try uninstalling the previous version and making a fresh install. If you
@@ -51,8 +52,8 @@ multiple installations has been known to cause problems.
Installing on Linux Installing on Linux
=================== ===================
A Debian package can be downloaded from the `main website`_, or from the Releases_ page on GitHub_. A Debian package can be downloaded from the `Downloads page`_, or from the Releases_ page on
This package should work on both Debian, Ubuntu and Linux Mint, at least. GitHub_. This package should work on both Debian, Ubuntu and Linux Mint, at least.
If you prefer, you can also add the novelWriter repository on Launchpad to your package manager. If you prefer, you can also add the novelWriter repository on Launchpad to your package manager.
@@ -112,8 +113,8 @@ completely standalone images for the app that include the necessary environment
They can of course be run on any Linux distro, if you prefer this to native packages. They can of course be run on any Linux distro, if you prefer this to native packages.
.. note:: .. note::
novelWriter generally don't support Python versions that have reached end of life. If your Linux novelWriter generally doesn't support Python versions that have reached end of life. If your
distro still uses older Python versions and novelWriter won't run, you may want to try the Linux distro still uses older Python versions and novelWriter won't run, you may want to try the
AppImage instead. AppImage instead.
@@ -123,14 +124,14 @@ Installing on MacOS
=================== ===================
You can install novelWriter with both its Python and library dependencies embedded using the DMG You can install novelWriter with both its Python and library dependencies embedded using the DMG
application image file from the `main website`_, or from the Releases_ page on GitHub_. Installing application image file from the `Downloads page`_, or from the Releases_ page on GitHub_.
it should be straightforward. Installing it should be straightforward.
* Download the DMG file and open it. Then drag the novelWriter icon to the :guilabel:`Applications` * Download the DMG file and open it. Then drag the novelWriter icon to the :guilabel:`Applications`
folder on the right. This will install it into your :guilabel:`Applications`. folder on the right. This will install it into your :guilabel:`Applications`.
* The first time you try to launch it, it will say that the bundle cannot be verified, simply press * The first time you try to launch it, it will say that the bundle cannot be verified, simply press
the :guilabel:`Open` button to add an exception. the :guilabel:`Open` button to add an exception.
* If you are not presented with an :guilabel:`Open` button in the dialog launch the application * If you are not presented with an :guilabel:`Open` button in the dialog, launch the application
again by right clicking on the application in Finder and selecting :guilabel:`Open` from the again by right clicking on the application in Finder and selecting :guilabel:`Open` from the
context menu. context menu.
@@ -149,7 +150,7 @@ Installing from PyPi
==================== ====================
novelWriter is also available on the Python Package Index, or PyPi_. This install method works on novelWriter is also available on the Python Package Index, or PyPi_. This install method works on
all supported operating systems. all supported operating systems with a suitable Python environment.
To install from PyPi you must first have the ``python`` and ``pip`` commands available on your To install from PyPi you must first have the ``python`` and ``pip`` commands available on your
system. You can download Python from `python.org`_. It is recommended that you install the latest system. You can download Python from `python.org`_. It is recommended that you install the latest
+1 -1
View File
@@ -5,7 +5,7 @@ Word and Text Counts
******************** ********************
This is an overview of how words and other counts of your text are performed. The counting rules This is an overview of how words and other counts of your text are performed. The counting rules
should be relatively standard, and are compared to LibreOffice Writer rules. should be relatively standard, and are compared to Libre Office Writer rules.
The counts provided in the app on the raw text is meant to be approximate. For more accurate The counts provided in the app on the raw text is meant to be approximate. For more accurate
counts, you need to build your manuscript in the :guilabel:`Manuscript Tool` and check the counts counts, you need to build your manuscript in the :guilabel:`Manuscript Tool` and check the counts
+3 -3
View File
@@ -10,7 +10,7 @@ You can activate it from the sidebar, the :guilabel:`Tools` menu, or by pressing
.. versionadded:: 2.1 .. versionadded:: 2.1
This tool is new for version 2.1. A simpler tool was used for earlier versions. The simpler tool This tool is new for version 2.1. A simpler tool was used for earlier versions. The simpler tool
only allows you to define a single set of options for the build, but otherwise has much the same only allows you to define a single set of options for the build, but otherwise had much the same
functionality. functionality.
@@ -73,7 +73,7 @@ Formatting Headings
The :guilabel:`Headings` page of the :guilabel:`Manuscript Build Settings` dialog allows you to set The :guilabel:`Headings` page of the :guilabel:`Manuscript Build Settings` dialog allows you to set
how the headings in your :term:`Novel Documents` are formatted. By default, the title is just how the headings in your :term:`Novel Documents` are formatted. By default, the title is just
copied as-is, indicated by the ``{Title}`` format. You can change this to for instance add chapter copied as-is, indicated by the ``{Title}`` format. You can change this to for instance add chapter
numbers and scene numbers like shown int he figure above. numbers and scene numbers, or insert character names, like shown in the figure above.
Clicking the edit button next to a format will copy the formatting string into the edit box where Clicking the edit button next to a format will copy the formatting string into the edit box where
it can be modified, and where a syntax highlighter will help indicate which parts are automatically it can be modified, and where a syntax highlighter will help indicate which parts are automatically
@@ -152,7 +152,7 @@ novelWriter Markup
Standard/Extended Markdown Standard/Extended Markdown
The Markdown format comes in both Standard and Extended flavour. The *only* difference in terms The Markdown format comes in both Standard and Extended flavour. The *only* difference in terms
of novelWriter functionality is the support for strikethrough text, which is not supported by of novelWriter functionality is the support for strike through text, which is not supported by
the Standard flavour. the Standard flavour.
+47 -30
View File
@@ -4,21 +4,25 @@
Novel Projects Novel Projects
************** **************
New projects can be created from the :guilabel:`Project` menu by selecting :guilabel:`New Project`. New projects can be created from the :guilabel:`Project` menu by selecting
This will open the :guilabel:`New Project Wizard` that will assist you in creating a bare bone :guilabel:`Create or Open Project`. This will open the :guilabel:`Welcome` dialog, where you can
project suited to your needs. select the :guilabel:`New` button that will assist you in creating a new project.
A novelWriter project requires a dedicated folder for storing its files on the local file system. A novelWriter project requires a dedicated folder for storing its files on the local file system.
If you're interested in the details, you can have a look at the chapter :ref:`a_storage`. If you're interested in the details, you can have a look at the chapter :ref:`a_storage`.
A list of recently opened projects is maintained, and displayed in the :guilabel:`Open Project` A list of recently opened projects is maintained, and displayed in the :guilabel:`Welcome`
dialog. A project can be removed from this list by selecting it and pressing the :kbd:`Del` key or dialog. A project can be removed from this list by selecting it and pressing the :kbd:`Del` key or
by clicking the :guilabel:`Remove` button. by right-clicking it and selecting the :guilabel:`Remove Project` option.
.. figure:: images/fig_welcome.jpg
The project list (left) and new project form (right) of the :guilabel:`Welcome` dialog.
Project-specific settings are available in :guilabel:`Project Settings` in the :guilabel:`Project` Project-specific settings are available in :guilabel:`Project Settings` in the :guilabel:`Project`
menu. See further details below in the :ref:`a_proj_settings` section. Details about the project, menu. See further details below in the :ref:`a_proj_settings` section. Details about the project's
including word counts, and a table of contents with word and page counts, is available through the novel text, including word counts, and a table of contents with word and page counts, is available
:guilabel:`Project Details` dialog. through the :guilabel:`Novel Details` dialog.
.. _a_proj_roots: .. _a_proj_roots:
@@ -58,8 +62,9 @@ details, see the :ref:`a_references` chapter.
Character notes go in this root folder type. These are especially important if you want to use Character notes go in this root folder type. These are especially important if you want to use
the :guilabel:`Outline View` to see which character appears where, which part of the story is the :guilabel:`Outline View` to see which character appears where, which part of the story is
told from a specific character's point-of-view, or focusing on a particular character's told from a specific character's point-of-view, or focusing on a particular character's
storyline. Tags in this type of folder can be referenced using the ``@pov`` keyword for storyline. The character names can also be inserted into for instance chapter titles when you
point-of-view characters, ``@focus`` for a focus character, or the ``@char`` keyword for any create your manuscript. Tags in this type of folder can be referenced using the ``@pov`` keyword
for point-of-view characters, ``@focus`` for a focus character, or the ``@char`` keyword for any
other character present. other character present.
:guilabel:`Locations` :guilabel:`Locations`
@@ -105,8 +110,8 @@ trash folder can then be deleted permanently, either individually, or by emptyin
the menu. Documents in the trash folder are removed from the :term:`project index` and cannot be the menu. Documents in the trash folder are removed from the :term:`project index` and cannot be
referenced. referenced.
A document or a folder can be deleted from the :guilabel:`Project` menu, or by pressing A document or a folder can be moved to trash from the :guilabel:`Project` menu, or by pressing
:kbd:`Ctrl+Shift+Del`. Root folders can only be deleted when they are empty. :kbd:`Ctrl+Shift+Del`. Root folders can only be removed when they are empty.
.. _a_proj_roots_out: .. _a_proj_roots_out:
@@ -129,9 +134,9 @@ Recovered Documents
------------------- -------------------
If novelWriter crashes or otherwise exits without saving the project state, or if you're using a If novelWriter crashes or otherwise exits without saving the project state, or if you're using a
file synchronisation tool that runs out of sync, there may be files in the project folder that file synchronisation tool that runs out of sync, there may be files in the project storage folder
aren't tracked in the core project file. These files, when discovered, are recovered and added back that aren't tracked in the core project file. These files, when discovered, are recovered and added
into the project. back into the project.
The discovered files are scanned for metadata that give clues as to where the document may The discovered files are scanned for metadata that give clues as to where the document may
previously have been located in the project. The project loading routine will try to put them back previously have been located in the project. The project loading routine will try to put them back
@@ -152,10 +157,10 @@ Project Lockfile
---------------- ----------------
To prevent lost documents caused by file conflicts when novelWriter projects are synchronised via To prevent lost documents caused by file conflicts when novelWriter projects are synchronised via
file synchronisation tools, a project lockfile is written to the project folder. If you try to open file synchronisation tools, a project lockfile is written to the project storage folder. If you try
a project which has such a file present, you will be presented with a warning, and some information to open a project which has such a file present, you will be presented with a warning, and some
about where else novelWriter thinks the project is also open. You will be given the option to information about where else novelWriter thinks the project is also open. You will be given the
ignore this warning, and continue opening the project at your own risk. option to ignore this warning, and continue opening the project at your own risk.
.. note:: .. note::
If, for some reason, novelWriter crashes, the lock file may remain even if there are no other If, for some reason, novelWriter crashes, the lock file may remain even if there are no other
@@ -208,6 +213,18 @@ converting, splitting, or merging items. See :ref:`a_ui_tree_split_merge` for mo
latter two. latter two.
Document Templates
------------------
If you wish to create template documents to be used when creating new project documents, like for
instance a character note template, you can add a :guilabel:`Templates` root folder to your
project. Any document added to this root folder will show up in the :guilabel:`Add Item` menu in
the project tree toolbar. When selected, a new document is created with its content copied from the
chosen template.
.. versionadded:: 2.3
.. _a_proj_files_counts: .. _a_proj_files_counts:
Word Counts Word Counts
@@ -227,6 +244,8 @@ the values in the project tree, which again depend on an up to date :term:`proje
counts seem wrong, a full project word recount can be initiated by rebuilding the project's index. counts seem wrong, a full project word recount can be initiated by rebuilding the project's index.
Either from the :guilabel:`Tools` menu, or by pressing :kbd:`F9`. Either from the :guilabel:`Tools` menu, or by pressing :kbd:`F9`.
The rules for how the counts are made is covered in more detail in :ref:`a_counting`.
.. _a_proj_settings: .. _a_proj_settings:
@@ -242,25 +261,23 @@ Settings Tab
The :guilabel:`Settings` tab holds the project name, title, and author settings. The :guilabel:`Settings` tab holds the project name, title, and author settings.
The :guilabel:`Project Name` can be set to a different value than the :guilabel:`Novel Title`. The The :guilabel:`Project Name` can be edited here. It is used for the GUI (main window title) and for
difference between them is simply that the :guilabel:`Project Name` is used for the GUI (main generating backup files. So keep in mind that if you do change this setting, the backup file names
window title) and for generating backup files. The intention is that the :guilabel:`Project Name` will change too.
should remain unchanged throughout the project's lifetime, otherwise the name of exported files and
backup files may change too.
The :guilabel:`Novel Title` and :guilabel:`Authors` settings are used when building the manuscript, You can also change the :guilabel:`Authors` and :guilabel:`Project Language` setting. These are
for some formats. only used when building the manuscript, for some formats.
If your project is in a different language than your main spell checking language is set to, you If your project is in a different language than your main spell checking language is set to, you
can override the default setting here. You can also override the automatic backup setting. The can override the default setting here. The project language can also be changed from the
project language can also be changed from the :guilabel:`Tools` menu. :guilabel:`Tools` menu. You can also override the automatic backup setting if you wish.
Status and Importance Tabs Status and Importance Tabs
-------------------------- --------------------------
Each document or folder of type :guilabel:`Novel` can be given a *Status* label accompanied by a Each document or folder of type :guilabel:`Novel` can be given a "Status" label accompanied by a
coloured icon, and each document or folder of the remaining types can be given an *Importance* coloured icon, and each document or folder of the remaining types can be given an "Importance"
label. label.
These labels are there purely for your convenience, and you are not required to use them for any These labels are there purely for your convenience, and you are not required to use them for any
+31 -30
View File
@@ -4,21 +4,21 @@
Tags and References Tags and References
******************* *******************
In novelWriter there are no forms or tables to fill in to define the characters, locations and In novelWriter there are no forms or tables to fill in to define characters, locations or other
other elements of your story. Instead, you can mark your :term:`project notes` as representing elements of your story. Instead, you create :term:`project notes` which you can mark as
these story elements by creating a :term:`tag`. Whenever you want to link a piece of your story to representing these story elements by creating a :term:`tag`. Whenever you want to link a piece of
a note defining a story element, like a character, you create a :term:`reference` back to that tag. your story to a note defining a story element, like a character, you create a :term:`reference`
You can also cross-link your project notes in the same way. back to that tag. You can also cross-link your project notes in the same way.
This is perhaps one of the features that makes novelWriter different from other, similar This is perhaps one of the features that makes novelWriter different from other, similar
applications. It is therefore not always obvious to new users how this is supposed to work, so applications. It is therefore not always obvious to new users how this is supposed to work, so
this chapter hopes to explains in more detail how to use the tags and references system. this chapter hopes to explain in more detail how to use this tags and references system.
.. tip:: .. tip::
If you find the Tags and Reference system difficult to follow just from reading this chapter, If you find the Tags and Reference system difficult to follow just from reading this chapter,
you can create a new project in novelWriter and select to "Fill the project with example files" you can create a new project in the :guilabel:`Welcome` dialog's New project form and select
in the :guilabel:`New Project Wizard`. The example project contains several examples of tags and "Create an example project" from the "Pre-fill project" option. The example project contains
references. several examples of tags and references.
.. _a_references_metadata: .. _a_references_metadata:
@@ -31,14 +31,15 @@ documents, not the documents themselves. See :ref:`a_struct_heads` for more deta
metadata is also associated with headings, and not the documents directly. metadata is also associated with headings, and not the documents directly.
If you split your project into separate documents for each scene, this distinction may not matter. If you split your project into separate documents for each scene, this distinction may not matter.
However, there are several benefits to using documents at a larger structural scale when starting However, there are several benefits to using documents at a larger structural scale when first
your project. For instance, it may make more sense to define all your scenes, and even chapters, in starting your project. For instance, it may make more sense to define all your scenes, and even
a single document at first, or perhaps a document per act. You can later split these documents up chapters, in a single document at first, or perhaps a document per act. You can later split these
using the document split feature. See :ref:`a_ui_tree_split_merge` for more details. documents up using the document split feature. See :ref:`a_ui_tree_split_merge` for more details.
The implication here is that you can treat each heading as an independent element of your notes You can do the same with your notes. You can treat each heading as an independent element of your
that can be referenced somewhere else. In order to make it possible to reference a header section, notes that can be referenced somewhere else. That way you can collect all your minor or background
you need to assign it a tag. characters in a single note file, and still be able to reference them individually by separating
them with headings and assigning each a tag.
.. _a_references_tags: .. _a_references_tags:
@@ -47,11 +48,11 @@ How to Use Tags
=============== ===============
A "tag" in novelWriter is a word or phrase that you define as belonging to a heading. Tags are set A "tag" in novelWriter is a word or phrase that you define as belonging to a heading. Tags are set
by using the ``@tags`` :term:`keyword`. by using the ``@tag`` :term:`keyword`.
The general format of a tag is ``@tag: tagName``. The basic format of a tag is ``@tag: tagName``.
The full format of a tag is ``@tag: tagName | displayName``. An alternative format of a tag is ``@tag: tagName | displayName``.
``tagName`` (Required) ``tagName`` (Required)
This is a unique identifier of your choosing. It is the value you use later for making This is a unique identifier of your choosing. It is the value you use later for making
@@ -59,21 +60,21 @@ The full format of a tag is ``@tag: tagName | displayName``.
``displayName`` (Optional) ``displayName`` (Optional)
This is an optional display name used for the tag. When you build your manuscript, you can for This is an optional display name used for the tag. When you build your manuscript, you can for
instance insert the point of view character name into chapter headings. By default, the instance insert the point of view character name directly into chapter headings. By default, the
``tagName`` value is used in headings, but if you use a shortened format internally in your ``tagName`` value is used in such headings, but if you use a shortened format internally in your
project, you can use this to specify a more suitable format for your manuscript. project, you can use this to specify a more suitable format for your manuscript headings.
You can only set *one* tag per heading, and the tag has to be unique across *all* documents in the You can only set **one** tag per heading, and the tag has to be unique across **all** documents in
project. the project.
After a tag has been defined, it can be referenced in novel documents, or cross-referenced in other After a tag has been defined, it can be referenced in novel documents, or cross-referenced in other
notes. Tags will also show up in the :guilabel:`Outline View` and in the back-reference panel when notes. Tags will also show up in the :guilabel:`Outline View` and in the references panel under the
a document is opened in the viewer. document viewer when a document is open in the viewer.
The syntax highlighter will indicate to you that the keyword is correctly used and that the tag is The syntax highlighter will indicate to you that the keyword is correctly used and that the tag is
allowed, that is, the tag is unique. Duplicate tags should be detected as long as the index is up allowed, that is, the tag is unique. Duplicate tags should be detected as long as the index is up
to date. An invalid tag should have a green wiggly line under it, and will not receive the syntax to date. An invalid tag should have a green wiggly line under it, and will not receive the colour
colour that valid tags do. that valid tags do.
The tag is the only part of these notes that novelWriter uses. The rest of the document content is The tag is the only part of these notes that novelWriter uses. The rest of the document content is
there for you to use in whatever way you wish. Of course, the content of the documents can be added there for you to use in whatever way you wish. Of course, the content of the documents can be added
@@ -90,7 +91,7 @@ notes, you can do this from the :guilabel:`Manuscript Build` tool.
Example of a heading with a tag for a character of the story: Example of a heading with a tag for a character of the story:
.. code-block:: none .. code-block:: md
# Character: Jane Doe # Character: Jane Doe
@@ -192,7 +193,7 @@ highlight that two notes are related.
Example of a novel document with references to characters and plots: Example of a novel document with references to characters and plots:
.. code-block:: none .. code-block:: md
## Chapter 1 ## Chapter 1
+41 -32
View File
@@ -7,10 +7,11 @@ Novel Structure
This chapter covers the structure of a novel project. This chapter covers the structure of a novel project.
There are two different types of documents in a project, :guilabel:`Novel Documents` and There are two different types of documents in a project, :guilabel:`Novel Documents` and
:guilabel:`Project Notes`. Novel documents can only live in a :guilabel:`Novel` type root folder. :guilabel:`Project Notes`. Active novel documents can only live in a :guilabel:`Novel` type root
You can also move them to :guilabel:`Archive` and :guilabel:`Trash` of course. folder. You can also move them to :guilabel:`Archive` and :guilabel:`Trash` of course, where they
become inactive.
The :guilabel:`Project Tree` can distinguish between the different header levels of the novel The :guilabel:`Project Tree` can distinguish between the different heading levels of the novel
documents using coloured icons, and optionally add emphasis on the label, set in documents using coloured icons, and optionally add emphasis on the label, set in
:guilabel:`Preferences`. :guilabel:`Preferences`.
@@ -27,47 +28,47 @@ Four levels of headings are supported, signified by the number of hashes (``#``)
title. See also the :ref:`a_fmt` section for more details about the markup syntax. title. See also the :ref:`a_fmt` section for more details about the markup syntax.
.. note:: .. note::
The header levels are not only important when generating the manuscript, they are also used by The heading levels are not only important when generating the manuscript, they are also used by
the indexer when building the outline tree in the :guilabel:`Outline View` as well as in the the indexer when building the outline tree in the :guilabel:`Outline View` as well as in the
:guilabel:`Novel Tree`. Each heading also starts a new region where new Tags and References :guilabel:`Novel Tree`. Each heading also starts a new region where new Tags and References
can be defined. See :ref:`a_references` for more details. can be defined. See :ref:`a_references` for more details.
The syntax for the four basic header types, and the two special header types, is listed in section The syntax for the four basic heading types, and the two special types, is listed in section
:ref:`a_fmt_head`. The meaning of the four levels for the structure of your novel is as follows: :ref:`a_fmt_head`. The meaning of the four levels for the structure of your novel is as follows:
**Header Level 1: Partition** **Heading Level 1: Partition**
This header level signifies that the text refers to a top level partition. This is useful when This heading level signifies that the text refers to a top level partition. This is useful when
you want to split the manuscript up into books, parts, or acts. These headings are not required. you want to split the manuscript up into books, parts, or acts. These headings are not required.
The novel title itself should use the special header level ``#!`` covered in :ref:`a_fmt_head`. The novel title itself should use the special heading level ``#!`` covered in :ref:`a_fmt_head`.
**Header Level 2: Chapter** **Heading Level 2: Chapter**
This header level signifies a chapter level partition. Each time you want to start a new This heading level signifies a chapter level partition. Each time you want to start a new
chapter, you must add such a heading. If you choose to split your manuscript up into one chapter, you must add such a heading. If you choose to split your manuscript up into one
document per scene, you need a single chapter document with just the heading. You can of course document per scene, you need a single chapter document with just the heading. You can of course
also add a synopsis and reference keywords to the chapter document. If you want to open the also add a synopsis and reference keywords to the chapter document. If you want to open the
chapter with a quote or other introductory text that isn't part of a scene, this is also where chapter with a quote or other introductory text that isn't part of a scene, this is also where
you'd put that text. you'd put that text.
**Header Level 3: Scene** **Heading Level 3: Scene**
This header level signifies a scene level partition. You must provide a title text, but the This heading level signifies a scene level partition. You must provide a title text, but the
title text can be replaced with a scene separator or just skipped entirely when you build your title text can be replaced with a scene separator or just skipped entirely when you build your
manuscript. manuscript.
**Header Level 4: Section** **Heading Level 4: Section**
This header level signifies a sub-scene level partition, usually called a "section" in the This heading level signifies a sub-scene level partition, usually called a "section" in the
documentation and the user interface. These can be useful if you want to change references documentation and the user interface. These can be useful if you want to change references
mid-scene, like if you change the point-of-view character. You are free to use sections as you mid-scene, like if you change the point-of-view character. You are free to use sections as you
wish, and you can filter them out of the final manuscript just like with scene titles. wish, and you can filter them out of the final manuscript just like with scene titles.
Page breaks are automatically added before level 1 and 2 headers when you build your project to a Page breaks are automatically added before partition and chapter headings when you build your
format that supports page breaks, or when you print the document directly from the project to a format that supports page breaks. If you want page breaks in other places, you have to
:guilabel:`Manuscript Build` tool. If you want page breaks in other places, you have to specify specify them manually. See :ref:`a_fmt_break`.
them manually. See :ref:`a_fmt_break`.
.. tip:: .. tip::
There are multiple options of how to process novel titles when building the manuscript. For There are multiple options of how to process novel headings when building the manuscript. For
instance, chapter numbers can be applied automatically, and so can scene numbers if you want instance, chapter numbers can be applied automatically, and so can scene numbers if you want
them in a draft manuscript. See the :ref:`a_manuscript` page for more details. them in a draft manuscript. You can also insert point-of-view character names in chapter titles.
See the :ref:`a_manuscript` page for more details.
.. _a_struct_heads_title: .. _a_struct_heads_title:
@@ -76,17 +77,21 @@ Novel Title and Front Matter
---------------------------- ----------------------------
It is recommended that you add a document at the very top of each Novel root folder with the novel It is recommended that you add a document at the very top of each Novel root folder with the novel
title as the first line. You should modify the level 1 header format code with an ``!`` in order to title as the first line. You should modify the level 1 heading format code with an ``!`` in order
render it as a document title that is excluded from any automatic Table of Content in a manuscript to render it as a document title that is excluded from any automatic Table of Content in a
build document, like so: manuscript build document, like so:
``#! My Novel`` .. code-block:: md
#! My Novel
>> _by Jane Doe_ <<
The title is by default centred on the page. You can add more text to the page as you wish, like The title is by default centred on the page. You can add more text to the page as you wish, like
for instance the author's name and details. for instance the author's name and details.
If you want an additional page of text after the title page, starting on a fresh page, you can add If you want an additional page of text after the title page, starting on a fresh page, you can add
``[NEW PAGE]`` on a line by itself, and continue the text after it. This will insert a page break ``[new page]`` on a line by itself, and continue the text after it. This will insert a page break
before the text. See also :ref:`a_fmt_break`. before the text. See also :ref:`a_fmt_break`.
@@ -96,15 +101,19 @@ Unnumbered Chapter Headings
--------------------------- ---------------------------
If you use the automatic numbering feature for your chapters, but you want to keep some special If you use the automatic numbering feature for your chapters, but you want to keep some special
chapters separate from this, you cam add an ``!`` to the level 2 header formatting code to tell the chapters separate from this, you can add an ``!`` to the level 2 heading formatting code to tell
build tool to skip these chapters. the build tool to skip these chapters.
``##! Unnumbered Chapter Title`` .. code-block:: md
There is a separate formatting feature for such chapters in the :guilabel:`Manuscript Build` tool ##! Unnumbered Chapter Title
as well. See the :ref:`a_manuscript` page for more details. When building a document of a format
that supports page breaks, also unnumbered chapters will have a page break added just like for Chapter Text
normal chapters.
There is a separate formatting feature for such chapter titles in the :guilabel:`Manuscript Build`
tool as well. See the :ref:`a_manuscript` page for more details. When building a document of a
format that supports page breaks, also unnumbered chapters will have a page break added just like
for normal chapters.
.. Note:: .. Note::
Previously, you could also disable the automatic numbering of a chapter by adding an ``*`` as Previously, you could also disable the automatic numbering of a chapter by adding an ``*`` as
+27 -24
View File
@@ -10,7 +10,7 @@ How it Works
The main features of novelWriter are listed in the :ref:`a_intro` chapter. In this chapter, we go The main features of novelWriter are listed in the :ref:`a_intro` chapter. In this chapter, we go
into some more details on how they are implemented. This is intended as an overview. Later on in into some more details on how they are implemented. This is intended as an overview. Later on in
this documentation, these features will be covered in more detail. this documentation these features will be covered in more detail.
.. _a_breakdown_design: .. _a_breakdown_design:
@@ -23,6 +23,8 @@ at the same time provide useful features needed for writing a novel.
The main window does not have an editor toolbar like many other applications do. This reduces The main window does not have an editor toolbar like many other applications do. This reduces
clutter, and since the documents are formatted with style tags, it is more or less redundant. clutter, and since the documents are formatted with style tags, it is more or less redundant.
Still, a small formatting toolbar can be popped out by clicking the three dots in the header of the
document editor to give quick access to standard formatting codes.
Most formatting features supported are available through convenient keyboard shortcuts. They are Most formatting features supported are available through convenient keyboard shortcuts. They are
also available in the main menu, so you don't have to look up formatting codes every time you need also available in the main menu, so you don't have to look up formatting codes every time you need
@@ -31,7 +33,8 @@ them. For reference, a list of all shortcuts can be found in the :ref:`a_kb` cha
.. note:: .. note::
novelWriter is not intended to be a full office type word processor. It doesn't support images, novelWriter is not intended to be a full office type word processor. It doesn't support images,
links, tables, and other complex structures and objects often needed for such documents. links, tables, and other complex structures and objects often needed for such documents.
Formatting is limited to headers, emphasis, text alignment, and a few other simple features. Formatting is limited to headings, in-line basic text formats, text alignment, and a few other
simple features.
On the left side of the main window, you will find a sidebar. This bar has buttons for the standard On the left side of the main window, you will find a sidebar. This bar has buttons for the standard
views you can switch between, a quick link to the :guilabel:`Build Manuscript` tool, and a set of views you can switch between, a quick link to the :guilabel:`Build Manuscript` tool, and a set of
@@ -54,18 +57,18 @@ When in :guilabel:`Project Tree View` mode, the main work area of the main windo
or optionally three, panels. The left-most panel contains the project tree and all the documents in or optionally three, panels. The left-most panel contains the project tree and all the documents in
your project. The second panel is the document editor. your project. The second panel is the document editor.
An optional third panel on the right contains a document viewer which can view any document in your An optional third panel on the right side contains a document viewer which can view any document in
project independently of what is open in the document editor. This panel is not intended as a your project independently of what is open in the document editor. This panel is not intended as a
preview window, although you can use it for this purpose if you wish as it will apply the preview window, although you can use it for this purpose if you wish if you need to check that the
formatting tags you have specified. The main purpose of the viewer is for viewing your notes next formatting tags behave as you expected. The main purpose of the viewer is for viewing your notes
to your editor while you're writing. next to your editor while you're writing.
The editor also has a :guilabel:`Focus Mode` you can toggle either from the menu, from the icon in The editor also has a :guilabel:`Focus Mode` you can toggle either from the menu, from the icon in
the editor's header, or by pressing :kbd:`F8`. When :guilabel:`Focus Mode` is enabled, all the user the editor's header, or by pressing :kbd:`F8`. When :guilabel:`Focus Mode` is enabled, all the user
interface elements other than the document editor itself are hidden away. interface elements other than the document editor itself are hidden away.
Novel Tree and Editor View Novel View and Editor View
-------------------------- --------------------------
.. figure:: images/fig_novel_tree_view.png .. figure:: images/fig_novel_tree_view.png
@@ -81,17 +84,17 @@ Each heading is indented according to the heading level. You can open and edit y
from this view as well. All headings contained in the currently open document should be highlighted from this view as well. All headings contained in the currently open document should be highlighted
in the view to indicate which ones belong together in the same document. in the view to indicate which ones belong together in the same document.
If you have multiple Novel root folders, the header of the novel view becomes a dropdown box. You If you have multiple "Novel" type root folders, the header of the novel view becomes a dropdown
can then switch between them by clicking the :guilabel:`Outline of ...` text. You can also click box. You can then switch between them by clicking the :guilabel:`Outline of ...` text. You can also
the novel icon button next to it. click the novel icon button next to it.
Generally, the novel view should update when you make changes to the novel structure, including Generally, the novel view should update when you make changes to the novel structure, including
edits of the current document in the editor. The information is only updated when the automatic edits of the current document in the editor. The information is only updated when the automatic
save of the document is triggered, or you manually press :kbd:`Ctrl+S` to save changes. (You can save of the document is triggered, or you manually press :kbd:`Ctrl+S` to save changes. (You can
adjust the auto-save interval in :guilabel:`Preferences`.) You can also regenerate the whole novel adjust the auto-save interval in :guilabel:`Preferences`.) You can also regenerate the whole novel
view by pressing the refresh button at the top of the side panel. view by pressing the refresh button in the novel view header.
It is possible to show an optional third column in the novel view, The settings are available from It is possible to show an optional third column in the novel view. The settings are available from
the menu button in the toolbar. the menu button in the toolbar.
If you click the arrow icon to the right of each item, a tooltip will pop out showing you all the If you click the arrow icon to the right of each item, a tooltip will pop out showing you all the
@@ -123,12 +126,12 @@ neutral colours from :guilabel:`Preferences`. Other colour themes are also avail
can be contributed to novelWriter on GitHub. can be contributed to novelWriter on GitHub.
Switching the GUI colour theme does not affect the colours of the editor and viewer. They have Switching the GUI colour theme does not affect the colours of the editor and viewer. They have
separate colour themes called :guilabel:`Editor Themes`. They are separated because there are a lot separate colour selectable from the "Document colour theme" setting in :guilabel:`Preferences`.
more options to choose from for the editor and viewer. They are separated because there are a lot more options to choose from for the editor and viewer.
.. note:: .. note::
If you switch to dark mode on the GUI, you should also switch editor theme to match, otherwise If you switch between light and dark mode on the GUI, you should also switch editor theme to
icons may be hard to see in the editor and viewer. match, otherwise icons may be hard to see in the editor and viewer.
.. _a_breakdown_project: .. _a_breakdown_project:
@@ -147,7 +150,7 @@ within those documents.
.. figure:: images/fig_header_levels.png .. figure:: images/fig_header_levels.png
An illustration of how header levels correspond to the novel structure. An illustration of how heading levels correspond to the novel structure.
The four heading levels (**H1** to **H4**) are treated as follows: The four heading levels (**H1** to **H4**) are treated as follows:
@@ -158,8 +161,8 @@ The four heading levels (**H1** to **H4**) are treated as follows:
The project tree will select an icon for the document based on the first heading in it. The project tree will select an icon for the document based on the first heading in it.
This header level structure is only taken into account for :term:`novel documents`. For This heading level structure is only taken into account for :term:`novel documents`. For
:term:`project notes`, the header levels have no structural meaning, and you are free to use them :term:`project notes`, the heading levels have no structural meaning, and you are free to use them
however you want. See :ref:`a_struct` and :ref:`a_references` for more details. however you want. See :ref:`a_struct` and :ref:`a_references` for more details.
.. versionadded:: 2.0 .. versionadded:: 2.0
@@ -171,8 +174,8 @@ however you want. See :ref:`a_struct` and :ref:`a_references` for more details.
.. _a_breakdown_export: .. _a_breakdown_export:
Building the Manuscript Building a Manuscript
======================= =====================
The project can at any time be assembled into a range of different formats through the The project can at any time be assembled into a range of different formats through the
:guilabel:`Build Manuscript` tool. Natively, novelWriter supports `Open Document`_, HTML5, and :guilabel:`Build Manuscript` tool. Natively, novelWriter supports `Open Document`_, HTML5, and
@@ -217,8 +220,8 @@ Secondly, having multiple small files means it is very easy to synchronise them
with standard file synchronisation tools. with standard file synchronisation tools.
Thirdly, if you use version control software to track the changes to your project, the file formats Thirdly, if you use version control software to track the changes to your project, the file formats
used for the files are well suited. Also the JSON documents have line breaks and indents, which used for the files are well suited. All the JSON documents have line breaks and indents as well,
makes it easier to track them with version control software. which makes it easier to track them with version control software.
.. note:: .. note::
Since novelWriter has to keep track of a bunch of files and folders when a project is open, it Since novelWriter has to keep track of a bunch of files and folders when a project is open, it
+39 -38
View File
@@ -6,8 +6,8 @@ Formatting Your Text
The novelWriter text editor is a plain text editor that uses formatting codes for setting meta data The novelWriter text editor is a plain text editor that uses formatting codes for setting meta data
values and allowing for some text formatting. The syntax is based on Markdown, but novelWriter is values and allowing for some text formatting. The syntax is based on Markdown, but novelWriter is
*not* a Markdown editor. It supports basic formatting like emphasis (italic), strong importance **not** a Markdown editor. It supports basic formatting like emphasis (italic), strong importance
(bold) and strike through text, as well as four levels of headings. Form some further complex (bold) and strike through text, as well as four levels of headings. For some further complex
formatting needs, a set of shortcodes can be used. formatting needs, a set of shortcodes can be used.
In addition to formatting codes, novelWriter allows for comments, a synopsis tag, and a set of In addition to formatting codes, novelWriter allows for comments, a synopsis tag, and a set of
@@ -30,7 +30,7 @@ dialogue in your text.
An example of the colour highlighting of references. "Bob" is not defined, and "@blabla" is not An example of the colour highlighting of references. "Bob" is not defined, and "@blabla" is not
a valid reference type. a valid reference type.
When you use the commands to set tags and references, these also change colour. Correct commands When you use the keywords to set tags and references, these also change colour. Correct keywords
have a distinct colour, and the references themselves will get a colour if they are valid. Invalid have a distinct colour, and the references themselves will get a colour if they are valid. Invalid
references will get a squiggly error line underneath. The same applies to duplicate tags. references will get a squiggly error line underneath. The same applies to duplicate tags.
@@ -45,7 +45,7 @@ Headings
.. figure:: images/fig_header_levels.png .. figure:: images/fig_header_levels.png
An illustration of how header levels correspond to the novel structure. An illustration of how heading levels correspond to the novel structure.
Four levels of headings are allowed. For :term:`project notes`, they are free to be used as you see Four levels of headings are allowed. For :term:`project notes`, they are free to be used as you see
fit. That is, novelWriter doesn't assign the different headings any particular meaning. However, fit. That is, novelWriter doesn't assign the different headings any particular meaning. However,
@@ -53,28 +53,28 @@ for :term:`novel documents` they indicate the structural level of the novel and
correctly to produce the intended result. See :ref:`a_struct_heads` for more details. correctly to produce the intended result. See :ref:`a_struct_heads` for more details.
``# Title Text`` ``# Title Text``
Heading level one. For novel documents, the header level indicates the start of a new partition. Heading level one. For novel documents, the level indicates the start of a new partition.
``## Title Text`` ``## Title Text``
Heading level two. For novel documents, the header level indicates the start of a new chapter. Heading level two. For novel documents, the level indicates the start of a new chapter. Chapter
Chapter numbers can be inserted automatically when building the manuscript. numbers can be inserted automatically when building the manuscript.
``### Title Text`` ``### Title Text``
Heading level three. For novel documents, the header level indicates the start of a new scene. Heading level three. For novel documents, the level indicates the start of a new scene. Scene
Scene numbers or scene separators can be inserted automatically when building the manuscript, numbers or scene separators can be inserted automatically when building the manuscript, so you
so you can use the title field as a working title for your scenes if you wish. can use the title field as a working title for your scenes if you wish.
``#### Title Text`` ``#### Title Text``
Heading level four. For novel documents, the header level indicates the start of a new section. Heading level four. For novel documents, the level indicates the start of a new section. Section
Section titles can be replaced by separators or ignored completely when building the manuscript. titles can be replaced by separators or ignored completely when building the manuscript.
For headers level one and two, adding a ``!`` modifies the behaviour of the heading: For headings level one and two, adding a ``!`` modifies its meaning:
``#! Title Text`` ``#! Title Text``
This tells the build tool that the level one heading is intended to be used for the novel's This tells the build tool that the level one heading is intended to be used for the novel's or
main title, like for instance on the front page. When building the manuscript, this will use a notes folder's main title, like for instance on the front page. When building the manuscript,
different styling and will exclude the title from, for instance, a Table of Contents in Libre this will use a different styling and will exclude the title from, for instance, a Table of
Office. Contents in Libre Office.
``##! Title Text`` ``##! Title Text``
This tells the build tool to not assign a chapter number to this chapter title if automatic This tells the build tool to not assign a chapter number to this chapter title if automatic
@@ -99,10 +99,10 @@ In addition, the editor supports a few additional types of white spaces:
* A non-breaking space can be inserted with :kbd:`Ctrl+K`, :kbd:`Space`. * A non-breaking space can be inserted with :kbd:`Ctrl+K`, :kbd:`Space`.
* Thin spaces are also supported, and can be inserted with :kbd:`Ctrl+K`, :kbd:`Shift+Space`. * Thin spaces are also supported, and can be inserted with :kbd:`Ctrl+K`, :kbd:`Shift+Space`.
* Non-breaking thin space can be inserted with :kbd:`Ctrl+K`, :kbd:`Ctrl+Space`. * Non-breaking thin space can be inserted with :kbd:`Ctrl+K`, :kbd:`Ctrl+Space`.
These are all insert features, and the :guilabel:`Insert` menu has more. They are also listed These are all insert features, and the :guilabel:`Insert` menu has more. The keyboard shortcuts for
in :ref:`a_kb_ins`. them are also listed in :ref:`a_kb_ins`.
Non-breaking spaces are highlighted by the syntax highlighter with an alternate coloured Non-breaking spaces are highlighted by the syntax highlighter with an alternate coloured
background, depending on the selected theme. background, depending on the selected theme.
@@ -118,7 +118,7 @@ background, depending on the selected theme.
Text Emphasis Text Emphasis
============= =============
A minimal set of text emphasis styles are supported for text paragraphs. A minimal set of Markdown text emphasis styles are supported for text paragraphs.
``_text_`` ``_text_``
The text is rendered as emphasised text (italicised). The text is rendered as emphasised text (italicised).
@@ -141,7 +141,7 @@ In addition, the following rules apply:
tag itself. That is, ``**text**`` is valid, ``**text **`` is not. tag itself. That is, ``**text**`` is valid, ``**text **`` is not.
2. More generally, the delimiters must be on the outer edge of words. That is, ``some **text in 2. More generally, the delimiters must be on the outer edge of words. That is, ``some **text in
bold** here`` is valid, ``some** text in bold** here`` is not. bold** here`` is valid, ``some** text in bold** here`` is not.
3. If using both ``**`` and ``_`` to wrap the same text, the underscore must be the *inner* 3. If using both ``**`` and ``_`` to wrap the same text, the underscore must be the **inner**
wrapper. This is due to the underscore also being a valid word character, so if they are on the wrapper. This is due to the underscore also being a valid word character, so if they are on the
outside, they violate rule 2. outside, they violate rule 2.
4. Text emphasis does not span past line breaks. If you need to add emphasis to multiple lines or 4. Text emphasis does not span past line breaks. If you need to add emphasis to multiple lines or
@@ -214,9 +214,10 @@ indicate this by altering the colour of the word.
document of the whole project. document of the whole project.
``%Short: text ...`` ``%Short: text ...``
This is a short description comment. It is identical to the synopsis comment, but is intended to This is a short description comment. It is identical to the synopsis comment (they are
be used for project notes. The text shows up in the Reference panel below the document viewer in interchangeable), but is intended to be used for project notes. The text shows up in the
the last column labelled :guilabel:`Short Description`. Reference panel below the document viewer in the last column labelled
:guilabel:`Short Description`.
.. note:: .. note::
Only one comment can be flagged as a synopsis or short comment for each heading. If multiple Only one comment can be flagged as a synopsis or short comment for each heading. If multiple
@@ -232,11 +233,11 @@ Tags and References
The document editor supports a set of keywords used for setting tags, and making references between The document editor supports a set of keywords used for setting tags, and making references between
documents. documents.
Tags use the command ``@tag:`` to define a tag. The tag can be set once per section defined by a Tags use the keyword ``@tag:`` to define a tag. The tag can be set once per section defined by a
heading. Setting it multiple times under the same heading will just override the previous setting. heading. Setting it multiple times under the same heading will just override the previous setting.
``@tag: value`` ``@tag: value``
A tag command followed by the tag value, like for instance the name of a character. A tag keyword followed by the tag value, like for instance the name of a character.
References can be set anywhere within a section, and are collected according to their category. References can be set anywhere within a section, and are collected according to their category.
References are in the form: References are in the form:
@@ -282,7 +283,7 @@ Examples:
.. note:: .. note::
The text editor will not show the alignment and indentation live. But the viewer will show them The text editor will not show the alignment and indentation live. But the viewer will show them
when you open the document there. It will of course also be reflected in the document generated when you open the document there. It will of course also be reflected in the document generated
from the build tool as long as the format supports paragraph alignment. from the manuscript build tool as long as the format supports paragraph alignment.
.. _a_fmt_break: .. _a_fmt_break:
@@ -290,37 +291,37 @@ Examples:
Vertical Space and Page Breaks Vertical Space and Page Breaks
============================== ==============================
Adding more than one line break between paragraphs will *not* increase the space between those Adding more than one line break between paragraphs will **not** increase the space between those
paragraphs when building the project. To add additional space between paragraphs, add the text paragraphs when building the project. To add additional space between paragraphs, add the text
``[VSPACE]`` on a line of its own, and the build tool will insert a blank paragraph in its place. ``[vspace]`` on a line of its own, and the build tool will insert a blank paragraph in its place.
If you need multiple blank paragraphs just add a colon and a number to the above code. For If you need multiple blank paragraphs just add a colon and a number to the above code. For
instance, writing ``[VSPACE:3]`` will insert three blank paragraphs. instance, writing ``[vspace:3]`` will insert three blank paragraphs.
Normally, the build tool will insert a page break before all headers of level one and for all Normally, the manuscript build tool will insert a page break before all headings of level one and
headers of level two for novel documents, i.e. chapters, but not for project notes. for all headings of level two for novel documents, i.e. chapters, but not for project notes.
If you need to add a page break somewhere else, put the text ``[NEW PAGE]`` on a line by itself If you need to add a page break somewhere else, put the text ``[new page]`` on a line by itself
before the text you wish to start on a new page. before the text you wish to start on a new page.
If you want page breaks for scenes and sections, you must add them manually. If you want page breaks for scenes and sections, you must add them manually.
.. note:: .. note::
The page break code is applied to the text that follows it. It adds a "page break before" mark The page break code is applied to the text that follows it. It adds a "page break before" mark
to the text when exporting to HTML or Open Document. This means that a ``[NEW PAGE]`` which has to the text when exporting to HTML or Open Document. This means that a ``[new page]`` which has
no text following it, it will not result in a page break. no text following it, it will not result in a page break.
**Example:** **Example:**
.. code-block:: markdown .. code-block:: md
This is a text paragraph. This is a text paragraph.
[VSPACE:2] [vspace:2]
This is another text paragraph, but there will be two empty paragraphs This is another text paragraph, but there will be two empty paragraphs
in-between them. in-between them.
[NEWPAGE] [new page]
This text will always start on a new page if the build format has pages. This text will always start on a new page if the build format has pages.
+22 -23
View File
@@ -86,7 +86,7 @@ Splitting Documents
The :guilabel:`Split Document` dialog. The :guilabel:`Split Document` dialog.
The :guilabel:`Split Document by Header` option will open a dialog that allows you to split the The :guilabel:`Split Document by Heading` option will open a dialog that allows you to split the
selected document into multiple new documents based on the headings it contains. You can select at selected document into multiple new documents based on the headings it contains. You can select at
which heading level the split is to be performed from the dropdown box. The list box will preview which heading level the split is to be performed from the dropdown box. The list box will preview
which headings will be split into new documents. which headings will be split into new documents.
@@ -94,7 +94,7 @@ which headings will be split into new documents.
You are given the option to create a folder for these new documents, and whether or not to create a You are given the option to create a folder for these new documents, and whether or not to create a
hierarchy of documents. That is, put sections under scenes, and scenes under chapters. hierarchy of documents. That is, put sections under scenes, and scenes under chapters.
The source document *is not* deleted in the process, but you have the option to let the tool move The source document **is not** deleted in the process, but you have the option to let the tool move
the source document to the :guilabel:`Trash` folder. the source document to the :guilabel:`Trash` folder.
@@ -123,16 +123,16 @@ Document Importance and Status
------------------------------ ------------------------------
Each document or folder in your project can have either a "Status" or "Importance" flag set. These Each document or folder in your project can have either a "Status" or "Importance" flag set. These
are flags that you control and define yourself. novelWriter doesn't do anything with them at all. are flags that you control and define yourself, and novelWriter doesn't use them for anything. To
To modify the labels, go to their respective tabs in :guilabel:`Project Settings`. modify the labels, go to their respective tabs in :guilabel:`Project Settings`.
The "Status" flag is intended to tag a :term:`novel document<novel documents>` as for instance a The "Status" flag is intended to tag a :term:`novel document<novel documents>` as for instance a
draft or as completed, and the "Importance" flag is intended to tag character notes, or other draft or as completed, and the "Importance" flag is intended to tag character notes, or other
:term:`project notes`, as for instance a main, major, or minor character or story element. :term:`project notes`, as for instance a main, major, or minor character or story element.
Whether a document uses a "Status" or "Importance" flag depends on which :term:`root folder` it Whether a document uses a "Status" or "Importance" flag depends on which :term:`root folder` it
lives in. If it's in a :guilabel:`Novel` folder, it uses the "Status" flag, otherwise it uses an lives in. If it's in a Novel type folder, it uses the "Status" flag, otherwise it uses an
"Importance" flag. Some folders, like :guilabel:`Trash` and :guilabel:`Archive` allow both. "Importance" flag.
.. _a_ui_tree_dnd: .. _a_ui_tree_dnd:
@@ -155,32 +155,31 @@ interface framework novelWriter is built upon.
Documents and their folders can be rearranged freely within their root folders. If you move a Novel Documents and their folders can be rearranged freely within their root folders. If you move a Novel
document out of a Novel folder, it will be converted to a project note. Notes can be moved freely document out of a Novel folder, it will be converted to a project note. Notes can be moved freely
between all root folders, but keep in mind that if you move a note into a :guilabel:`Novel` root between all root folders, but keep in mind that if you move a note into a Novel type root folder,
folder, its "Importance" setting will be switched with a "Status" setting. See its "Importance" setting will be switched with a "Status" setting. See :ref:`a_ui_tree_status`. The
:ref:`a_ui_tree_status`. The old value will not be overwritten though, and should be restored if old value will not be overwritten though, and should be restored if you move it back at some point.
you move it back at some point.
Root folders in the project tree cannot be dragged and dropped at all. If you want to reorder them, Root folders in the project tree cannot be dragged and dropped at all. If you want to reorder them,
you can move them up or down with respect to each other from the arrow buttons at the top of the you can move them up or down with respect to each other from the arrow buttons at the top of the
project tree, or by pressing :kbd:`Ctrl+Shift+Up` or :kbd:`Ctrl+Shift+Down` when they are selected. project tree, or by pressing :kbd:`Ctrl+Up` or :kbd:`Ctrl+Down` when they are selected.
.. _a_ui_tree_novel: .. _a_ui_tree_novel:
The Novel Tree The Novel Tree View
============== ===================
.. figure:: images/fig_novel_tree_view.png .. figure:: images/fig_novel_tree_view.png
A screenshot of the Novel Tree View. A screenshot of the Novel Tree View.
An alternative way to view the project structure is the novel tree. You can switch to this view by An alternative way to view the project structure is the novel view. You can switch to this view by
selecting the :guilabel:`Novel Tree View` button in the sidebar. This view is a simplified version selecting the :guilabel:`Novel View` button in the sidebar. This view is a simplified version of
of the view in the :guilabel:`Outline View`. It is convenient when you want to browse the structure the view in the :guilabel:`Outline View`. It is convenient when you want to browse the structure
of the story itself rather than the document files. of the story itself rather than the document files.
.. note:: .. note::
You cannot reorganise the entries in the novel tree, or add any new documents, as that would You cannot reorganise the entries in the novel view, or add any new documents, as that would
imply restructuring the content of the document files themselves. Any such editing must be done imply restructuring the content of the document files themselves. Any such editing must be done
in the project tree. However, you can add new headings to existing documents, or change in the project tree. However, you can add new headings to existing documents, or change
references, which will be updated in this view when the document is saved. references, which will be updated in this view when the document is saved.
@@ -188,17 +187,17 @@ of the story itself rather than the document files.
.. _a_ui_outline: .. _a_ui_outline:
Project Outline View The Novel Outline View
==================== ======================
.. figure:: images/fig_outline_view.png .. figure:: images/fig_outline_view.png
A screenshot of the Novel Outline View. A screenshot of the Novel Outline View.
The project's :guilabel:`Outline View` is available as another view option from the sidebar. The The project's :guilabel:`Novel Outline View` is available as another view option from the sidebar.
outline provides an overview of the novel structure, displaying a tree hierarchy of the elements of The outline provides an overview of the novel structure, displaying a tree hierarchy of the
the novel, that is, the level 1 to 4 headings representing partitions, chapters, scenes and elements of the novel, that is, the level 1 to 4 headings representing partitions, chapters, scenes
sections. and sections.
The document containing the heading can also be displayed as a separate column, as well as the line The document containing the heading can also be displayed as a separate column, as well as the line
number where the heading is defined. Double-clicking an entry will open the corresponding document number where the heading is defined. Double-clicking an entry will open the corresponding document
+14 -16
View File
@@ -23,14 +23,14 @@ Main Window Shortcuts
":kbd:`F5`", "Open the :guilabel:`Build Manuscript` tool" ":kbd:`F5`", "Open the :guilabel:`Build Manuscript` tool"
":kbd:`F6`", "Open the :guilabel:`Writing Statistics` tool" ":kbd:`F6`", "Open the :guilabel:`Writing Statistics` tool"
":kbd:`F8`", "Toggle :guilabel:`Focus Mode`" ":kbd:`F8`", "Toggle :guilabel:`Focus Mode`"
":kbd:`F9`", "Re-build the project index" ":kbd:`F9`", "Re-build the project's index"
":kbd:`F11`", "Toggle full screen mode" ":kbd:`F11`", "Toggle full screen mode"
":kbd:`Ctrl+,`", "Open the :guilabel:`Preferences` dialog" ":kbd:`Ctrl+,`", "Open the :guilabel:`Preferences` dialog"
":kbd:`Ctrl+E`", "Switch focus to the document editor" ":kbd:`Ctrl+E`", "Switch focus to the document editor"
":kbd:`Ctrl+T`", "Switch focus to the project/novel tree" ":kbd:`Ctrl+T`", "Switch or toggle focus for the project tree or novel view"
":kbd:`Ctrl+Q`", "Exit novelWriter" ":kbd:`Ctrl+Q`", "Exit novelWriter"
":kbd:`Ctrl+Shift+,`", "Open the :guilabel:`Project Settings` dialog" ":kbd:`Ctrl+Shift+,`", "Open the :guilabel:`Project Settings` dialog"
":kbd:`Ctrl+Shift+O`", "Open a project" ":kbd:`Ctrl+Shift+O`", "Open the Welcome dialog to open or create a project"
":kbd:`Ctrl+Shift+S`", "Save the current project" ":kbd:`Ctrl+Shift+S`", "Save the current project"
":kbd:`Ctrl+Shift+T`", "Switch focus to the outline view" ":kbd:`Ctrl+Shift+T`", "Switch focus to the outline view"
":kbd:`Ctrl+Shift+W`", "Close the current project" ":kbd:`Ctrl+Shift+W`", "Close the current project"
@@ -55,12 +55,11 @@ Project Tree Shortcuts
":kbd:`Ctrl+.`", "Open the context menu on the selected item" ":kbd:`Ctrl+.`", "Open the context menu on the selected item"
":kbd:`Ctrl+L`", "Open the :guilabel:`Quick Links` menu" ":kbd:`Ctrl+L`", "Open the :guilabel:`Quick Links` menu"
":kbd:`Ctrl+N`", "Open the :guilabel:`Create New Item` menu" ":kbd:`Ctrl+N`", "Open the :guilabel:`Create New Item` menu"
":kbd:`Ctrl+O`", "Open selected document" ":kbd:`Ctrl+O`", "Open the selected document in the editor"
":kbd:`Ctrl+R`", "Open the selected document in the viewer" ":kbd:`Ctrl+R`", "Open the selected document in the viewer"
":kbd:`Ctrl+Up`", "Move selected item one step up in the tree" ":kbd:`Ctrl+Up`", "Move selected item one step up in the tree"
":kbd:`Ctrl+Down`", "Move selected item one step down in the tree" ":kbd:`Ctrl+Down`", "Move selected item one step down in the tree"
":kbd:`Ctrl+Shift+Del`", "Move the selected item to Trash" ":kbd:`Ctrl+Shift+Del`", "Move the selected item to Trash"
":kbd:`Ctrl+Shift+Z`", "Undo the last move of a project item, if possible"
.. _a_kb_editor: .. _a_kb_editor:
@@ -92,22 +91,22 @@ Text Formatting Shortcuts
":kbd:`Ctrl+'`", "Wrap selected text, or word under cursor, in single quotes" ":kbd:`Ctrl+'`", "Wrap selected text, or word under cursor, in single quotes"
":kbd:`Ctrl+""`", "Wrap selected text, or word under cursor, in double quotes" ":kbd:`Ctrl+""`", "Wrap selected text, or word under cursor, in double quotes"
":kbd:`Ctrl+/`", "Toggle block format as comment" ":kbd:`Ctrl+/`", "Toggle block format as comment for block under cursor, or selected text"
":kbd:`Ctrl+0`", "Remove block formatting for block under cursor" ":kbd:`Ctrl+0`", "Remove block formatting for block under cursor, or selected text"
":kbd:`Ctrl+1`", "Change block format to header level 1" ":kbd:`Ctrl+1`", "Change block format to heading level 1"
":kbd:`Ctrl+2`", "Change block format to header level 2" ":kbd:`Ctrl+2`", "Change block format to heading level 2"
":kbd:`Ctrl+3`", "Change block format to header level 3" ":kbd:`Ctrl+3`", "Change block format to heading level 3"
":kbd:`Ctrl+4`", "Change block format to header level 4" ":kbd:`Ctrl+4`", "Change block format to heading level 4"
":kbd:`Ctrl+5`", "Change block alignment to left-aligned" ":kbd:`Ctrl+5`", "Change block alignment to left-aligned"
":kbd:`Ctrl+6`", "Change block alignment to centred" ":kbd:`Ctrl+6`", "Change block alignment to centred"
":kbd:`Ctrl+7`", "Change block alignment to right-aligned" ":kbd:`Ctrl+7`", "Change block alignment to right-aligned"
":kbd:`Ctrl+8`", "Add a left margin to the block" ":kbd:`Ctrl+8`", "Add a left margin to the block"
":kbd:`Ctrl+9`", "Add a right margin to the block" ":kbd:`Ctrl+9`", "Add a right margin to the block"
":kbd:`Ctrl+B`", "Format selected text, or word under cursor, with strong emphasis (bold)" ":kbd:`Ctrl+B`", "Format selected text, or word under cursor, with strong emphasis (bold)"
":kbd:`Ctrl+D`", "Strike through selected text, or word under cursor" ":kbd:`Ctrl+D`", "Format selected text, or word under cursor, with strike through"
":kbd:`Ctrl+I`", "Format selected text, or word under cursor, with emphasis (italic)" ":kbd:`Ctrl+I`", "Format selected text, or word under cursor, with emphasis (italic)"
":kbd:`Ctrl+Shift+/`", "Remove block formatting for block under cursor" ":kbd:`Ctrl+Shift+/`", "Remove block formatting for block under cursor, or selected text"
":kbd:`Ctrl+Shift+D`", "Toggle block format as ignored text" ":kbd:`Ctrl+Shift+D`", "Toggle block format as ignored text for block under cursor, or selected text"
Other Editor Shortcuts Other Editor Shortcuts
@@ -116,7 +115,7 @@ Other Editor Shortcuts
.. csv-table:: .. csv-table::
:header: "Shortcut", "Description" :header: "Shortcut", "Description"
":kbd:`F7`", "Re-run the spell checker" ":kbd:`F7`", "Re-run the spell checker on the document"
":kbd:`Ctrl+.`", "Open the context menu at the current cursor location" ":kbd:`Ctrl+.`", "Open the context menu at the current cursor location"
":kbd:`Ctrl+A`", "Select all text in the document" ":kbd:`Ctrl+A`", "Select all text in the document"
":kbd:`Ctrl+C`", "Copy selected text to clipboard" ":kbd:`Ctrl+C`", "Copy selected text to clipboard"
@@ -133,7 +132,6 @@ Other Editor Shortcuts
":kbd:`Ctrl+F7`", "Toggle spell checking" ":kbd:`Ctrl+F7`", "Toggle spell checking"
":kbd:`Ctrl+Return`", "Open the tag or reference under the cursor in the viewer" ":kbd:`Ctrl+Return`", "Open the tag or reference under the cursor in the viewer"
":kbd:`Ctrl+Shift+A`", "Select all text in the current paragraph" ":kbd:`Ctrl+Shift+A`", "Select all text in the current paragraph"
":kbd:`Ctrl+Shift+I`", "Import text to the current document from a text file"
.. _a_kb_ins: .. _a_kb_ins:
+4 -5
View File
@@ -42,13 +42,12 @@ the label and pressing :kbd:`Ctrl+Return`. You can also control-click them with
Editor Auto-Completer Editor Auto-Completer
--------------------- ---------------------
If you type the character ``@`` on a new line, a context menu will appear showing the different If you type the character ``@`` on a new line, a menu will appear showing the different available
available keywords. The list will shorten as you type. Once a keyword command has been selected or keywords. The list will shorten as you type. Once a keyword command has been selected or typed, the
typed, the editor may suggest further content based on your project content. See editor may suggest further content based on your project content. See :ref:`a_references_completer`
:ref:`a_references_completer` for more details. for more details.
.. versionadded:: 2.2 .. versionadded:: 2.2
The auto-completer feature was added.
.. _a_ui_view: .. _a_ui_view:
+1703 -1835
View File
File diff suppressed because it is too large Load Diff
+108 -117
View File
@@ -1400,7 +1400,7 @@
<translation>Some changes will not be applied until novelWriter has been restarted.</translation> <translation>Some changes will not be applied until novelWriter has been restarted.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/guimain.py" line="1401" /> <location filename="../novelwriter/guimain.py" line="1403" />
<source>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}.</source> <source>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}.</source>
<translation>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}.</translation> <translation>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}.</translation>
</message> </message>
@@ -3018,118 +3018,118 @@
<context> <context>
<name>GuiProjectTree</name> <name>GuiProjectTree</name>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="559" /> <location filename="../novelwriter/gui/projtree.py" line="513" />
<source>Active</source> <source>Active</source>
<translation>Active</translation> <translation>Active</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="560" /> <location filename="../novelwriter/gui/projtree.py" line="514" />
<source>Inactive</source> <source>Inactive</source>
<translation>Inactive</translation> <translation>Inactive</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="647" /> <location filename="../novelwriter/gui/projtree.py" line="515" />
<source>Did not find anywhere to add the file or folder!</source>
<translation>Did not find anywhere to add the file or folder!</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="656" />
<source>Cannot add new files or folders to the Trash folder.</source>
<translation>Cannot add new files or folders to the Trash folder.</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="666" />
<source>New Note</source>
<translation>New Note</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="669" />
<source>New Chapter</source>
<translation>New Chapter</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="672" />
<source>New Scene</source>
<translation>New Scene</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="675" />
<source>New Document</source>
<translation>New Document</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="678" />
<source>New Folder</source>
<translation>New Folder</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="893" />
<source>There is currently no Trash folder in this project.</source>
<translation>There is currently no Trash folder in this project.</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="902" />
<source>The Trash folder is already empty.</source>
<translation>The Trash folder is already empty.</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="906" />
<source>Permanently delete {0} file(s) from Trash?</source> <source>Permanently delete {0} file(s) from Trash?</source>
<translation>Permanently delete {0} file(s) from Trash?</translation> <translation>Permanently delete {0} file(s) from Trash?</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="952" /> <location filename="../novelwriter/gui/projtree.py" line="648" />
<source>Did not find anywhere to add the file or folder!</source>
<translation>Did not find anywhere to add the file or folder!</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="657" />
<source>Cannot add new files or folders to the Trash folder.</source>
<translation>Cannot add new files or folders to the Trash folder.</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="667" />
<source>New Note</source>
<translation>New Note</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="670" />
<source>New Chapter</source>
<translation>New Chapter</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="673" />
<source>New Scene</source>
<translation>New Scene</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="676" />
<source>New Document</source>
<translation>New Document</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="679" />
<source>New Folder</source>
<translation>New Folder</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="894" />
<source>There is currently no Trash folder in this project.</source>
<translation>There is currently no Trash folder in this project.</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="903" />
<source>The Trash folder is already empty.</source>
<translation>The Trash folder is already empty.</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="950" />
<source>Move '{0}' to Trash?</source> <source>Move '{0}' to Trash?</source>
<translation>Move '{0}' to Trash?</translation> <translation>Move '{0}' to Trash?</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="984" /> <location filename="../novelwriter/gui/projtree.py" line="982" />
<source>Root folders can only be deleted when they are empty.</source> <source>Root folders can only be deleted when they are empty.</source>
<translation>Root folders can only be deleted when they are empty.</translation> <translation>Root folders can only be deleted when they are empty.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1003" /> <location filename="../novelwriter/gui/projtree.py" line="1001" />
<source>Permanently delete '{0}'?</source> <source>Permanently delete '{0}'?</source>
<translation>Permanently delete '{0}'?</translation> <translation>Permanently delete '{0}'?</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1298" /> <location filename="../novelwriter/gui/projtree.py" line="1292" />
<source>Drag and drop is only allowed for single items, non-root items, or multiple items with the same parent.</source> <source>Drag and drop is only allowed for single items, non-root items, or multiple items with the same parent.</source>
<translation>Drag and drop is only allowed for single items, non-root items, or multiple items with the same parent.</translation> <translation>Drag and drop is only allowed for single items, non-root items, or multiple items with the same parent.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1430" /> <location filename="../novelwriter/gui/projtree.py" line="1424" />
<source>No documents selected for merging.</source> <source>No documents selected for merging.</source>
<translation>No documents selected for merging.</translation> <translation>No documents selected for merging.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1438" /> <location filename="../novelwriter/gui/projtree.py" line="1432" />
<source>Merged</source> <source>Merged</source>
<translation>Merged</translation> <translation>Merged</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1518" /> <location filename="../novelwriter/gui/projtree.py" line="1512" />
<location filename="../novelwriter/gui/projtree.py" line="1454" /> <location filename="../novelwriter/gui/projtree.py" line="1448" />
<source>Could not write document content.</source> <source>Could not write document content.</source>
<translation>Could not write document content.</translation> <translation>Could not write document content.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1540" /> <location filename="../novelwriter/gui/projtree.py" line="1534" />
<source>Do you want to duplicate this document?</source> <source>Do you want to duplicate this document?</source>
<translation>Do you want to duplicate this document?</translation> <translation>Do you want to duplicate this document?</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1542" /> <location filename="../novelwriter/gui/projtree.py" line="1536" />
<source>Do you want to duplicate this item and all child items?</source> <source>Do you want to duplicate this item and all child items?</source>
<translation>Do you want to duplicate this item and all child items?</translation> <translation>Do you want to duplicate this item and all child items?</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1556" /> <location filename="../novelwriter/gui/projtree.py" line="1550" />
<source>Could not duplicate all items.</source> <source>Could not duplicate all items.</source>
<translation>Could not duplicate all items.</translation> <translation>Could not duplicate all items.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1613" /> <location filename="../novelwriter/gui/projtree.py" line="1607" />
<source>There is nowhere to add item with name '{0}'.</source> <source>There is nowhere to add item with name '{0}'.</source>
<translation>There is nowhere to add item with name '{0}'.</translation> <translation>There is nowhere to add item with name '{0}'.</translation>
</message> </message>
@@ -3474,73 +3474,73 @@
<translation>Saved Project: {0}</translation> <translation>Saved Project: {0}</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="427" /> <location filename="../novelwriter/core/project.py" line="428" />
<source>Backing up project ...</source> <source>Backing up project ...</source>
<translation>Backing up project ...</translation> <translation>Backing up project ...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="430" /> <location filename="../novelwriter/core/project.py" line="431" />
<source>Cannot backup project because no project name is set. Please set a Project Name in Project Settings.</source> <source>Cannot backup project because no project name is set. Please set a Project Name in Project Settings.</source>
<translation>Cannot backup project because no project name is set. Please set a Project Name in Project Settings.</translation> <translation>Cannot backup project because no project name is set. Please set a Project Name in Project Settings.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="442" /> <location filename="../novelwriter/core/project.py" line="443" />
<source>Could not create backup folder.</source> <source>Could not create backup folder.</source>
<translation>Could not create backup folder.</translation> <translation>Could not create backup folder.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="451" /> <location filename="../novelwriter/core/project.py" line="452" />
<source>Created a backup of your project of size {0}B.</source> <source>Created a backup of your project of size {0}B.</source>
<translation>Created a backup of your project of size {0}B.</translation> <translation>Created a backup of your project of size {0}B.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="452" /> <location filename="../novelwriter/core/project.py" line="453" />
<source>Path: {0}</source> <source>Path: {0}</source>
<translation>Path: {0}</translation> <translation>Path: {0}</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="455" /> <location filename="../novelwriter/core/project.py" line="456" />
<source>Could not write backup archive.</source> <source>Could not write backup archive.</source>
<translation>Could not write backup archive.</translation> <translation>Could not write backup archive.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="458" /> <location filename="../novelwriter/core/project.py" line="459" />
<source>Project backed up to '{0}'</source> <source>Project backed up to '{0}'</source>
<translation>Project backed up to '{0}'</translation> <translation>Project backed up to '{0}'</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="472" /> <location filename="../novelwriter/core/project.py" line="473" />
<location filename="../novelwriter/core/project.py" line="468" /> <location filename="../novelwriter/core/project.py" line="469" />
<source>New</source> <source>New</source>
<translation>New</translation> <translation>New</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="469" /> <location filename="../novelwriter/core/project.py" line="470" />
<source>Note</source> <source>Note</source>
<translation>Note</translation> <translation>Note</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="470" /> <location filename="../novelwriter/core/project.py" line="471" />
<source>Draft</source> <source>Draft</source>
<translation>Draft</translation> <translation>Draft</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="471" /> <location filename="../novelwriter/core/project.py" line="472" />
<source>Finished</source> <source>Finished</source>
<translation>Finished</translation> <translation>Finished</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="473" /> <location filename="../novelwriter/core/project.py" line="474" />
<source>Minor</source> <source>Minor</source>
<translation>Minor</translation> <translation>Minor</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="474" /> <location filename="../novelwriter/core/project.py" line="475" />
<source>Major</source> <source>Major</source>
<translation>Major</translation> <translation>Major</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="475" /> <location filename="../novelwriter/core/project.py" line="476" />
<source>Main</source> <source>Main</source>
<translation>Main</translation> <translation>Main</translation>
</message> </message>
@@ -4520,142 +4520,133 @@
<context> <context>
<name>_TreeContextMenu</name> <name>_TreeContextMenu</name>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1765" /> <location filename="../novelwriter/gui/projtree.py" line="1759" />
<source>Empty Trash</source> <source>Empty Trash</source>
<translation>Empty Trash</translation> <translation>Empty Trash</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1785" /> <location filename="../novelwriter/gui/projtree.py" line="1779" />
<source>Rename</source> <source>Rename</source>
<translation>Rename</translation> <translation>Rename</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1817" /> <location filename="../novelwriter/gui/projtree.py" line="1815" />
<source>Open Document</source> <source>Open Document</source>
<translation>Open Document</translation> <translation>Open Document</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1821" /> <location filename="../novelwriter/gui/projtree.py" line="1819" />
<source>View Document</source> <source>View Document</source>
<translation>View Document</translation> <translation>View Document</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1829" /> <location filename="../novelwriter/gui/projtree.py" line="1827" />
<source>Create New ...</source> <source>Create New ...</source>
<translation>Create New ...</translation> <translation>Create New ...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1840" /> <location filename="../novelwriter/gui/projtree.py" line="1838" />
<source>Rename to Heading</source> <source>Rename to Heading</source>
<translation>Rename to Heading</translation> <translation>Rename to Heading</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1849" /> <location filename="../novelwriter/gui/projtree.py" line="1847" />
<source>Set Active to ...</source> <source>Set Active to ...</source>
<translation>Set Active to ...</translation> <translation>Set Active to ...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1850" /> <location filename="../novelwriter/gui/projtree.py" line="1853" />
<source>Active</source>
<translation>Active</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="1852" />
<source>Inactive</source>
<translation>Inactive</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="1855" />
<source>Toggle Active</source> <source>Toggle Active</source>
<translation>Toggle Active</translation> <translation>Toggle Active</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1862" /> <location filename="../novelwriter/gui/projtree.py" line="1860" />
<source>Set Status to ...</source> <source>Set Status to ...</source>
<translation>Set Status to ...</translation> <translation>Set Status to ...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1891" /> <location filename="../novelwriter/gui/projtree.py" line="1889" />
<location filename="../novelwriter/gui/projtree.py" line="1874" /> <location filename="../novelwriter/gui/projtree.py" line="1872" />
<source>Manage Labels ...</source> <source>Manage Labels ...</source>
<translation>Manage Labels ...</translation> <translation>Manage Labels ...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1879" /> <location filename="../novelwriter/gui/projtree.py" line="1877" />
<source>Set Importance to ...</source> <source>Set Importance to ...</source>
<translation>Set Importance to ...</translation> <translation>Set Importance to ...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1899" /> <location filename="../novelwriter/gui/projtree.py" line="1897" />
<source>Transform ...</source> <source>Transform ...</source>
<translation>Transform ...</translation> <translation>Transform ...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1924" /> <location filename="../novelwriter/gui/projtree.py" line="1922" />
<location filename="../novelwriter/gui/projtree.py" line="1920" /> <location filename="../novelwriter/gui/projtree.py" line="1918" />
<location filename="../novelwriter/gui/projtree.py" line="1916" /> <location filename="../novelwriter/gui/projtree.py" line="1914" />
<location filename="../novelwriter/gui/projtree.py" line="1912" /> <location filename="../novelwriter/gui/projtree.py" line="1910" />
<source>Convert to {0}</source> <source>Convert to {0}</source>
<translation>Convert to {0}</translation> <translation>Convert to {0}</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1928" /> <location filename="../novelwriter/gui/projtree.py" line="1926" />
<source>Merge Child Items into Self</source> <source>Merge Child Items into Self</source>
<translation>Merge Child Items into Self</translation> <translation>Merge Child Items into Self</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1930" /> <location filename="../novelwriter/gui/projtree.py" line="1928" />
<source>Merge Child Items into New</source> <source>Merge Child Items into New</source>
<translation>Merge Child Items into New</translation> <translation>Merge Child Items into New</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1934" /> <location filename="../novelwriter/gui/projtree.py" line="1932" />
<source>Merge Documents in Folder</source> <source>Merge Documents in Folder</source>
<translation>Merge Documents in Folder</translation> <translation>Merge Documents in Folder</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1938" /> <location filename="../novelwriter/gui/projtree.py" line="1936" />
<source>Split Document by Headers</source> <source>Split Document by Headers</source>
<translation>Split Document by Headers</translation> <translation>Split Document by Headers</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1948" /> <location filename="../novelwriter/gui/projtree.py" line="1946" />
<source>Expand All</source> <source>Expand All</source>
<translation>Expand All</translation> <translation>Expand All</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1950" /> <location filename="../novelwriter/gui/projtree.py" line="1948" />
<source>Collapse All</source> <source>Collapse All</source>
<translation>Collapse All</translation> <translation>Collapse All</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1952" /> <location filename="../novelwriter/gui/projtree.py" line="1950" />
<source>Duplicate from Here</source> <source>Duplicate from Here</source>
<translation>Duplicate from Here</translation> <translation>Duplicate from Here</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1955" /> <location filename="../novelwriter/gui/projtree.py" line="1953" />
<source>Duplicate Document</source> <source>Duplicate Document</source>
<translation>Duplicate Document</translation> <translation>Duplicate Document</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1959" /> <location filename="../novelwriter/gui/projtree.py" line="1969" />
<location filename="../novelwriter/gui/projtree.py" line="1957" />
<source>Delete Permanently</source> <source>Delete Permanently</source>
<translation>Delete Permanently</translation> <translation>Delete Permanently</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1969" /> <location filename="../novelwriter/gui/projtree.py" line="1972" />
<location filename="../novelwriter/gui/projtree.py" line="1962" /> <location filename="../novelwriter/gui/projtree.py" line="1960" />
<source>Move to Trash</source> <source>Move to Trash</source>
<translation>Move to Trash</translation> <translation>Move to Trash</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1981" /> <location filename="../novelwriter/gui/projtree.py" line="1983" />
<source>Move {0} items to Trash?</source> <source>Move {0} items to Trash?</source>
<translation>Move {0} items to Trash?</translation> <translation>Move {0} items to Trash?</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="2060" /> <location filename="../novelwriter/gui/projtree.py" line="2068" />
<source>Do you want to convert the folder to a {0}? This action cannot be reversed.</source> <source>Do you want to convert the folder to a {0}? This action cannot be reversed.</source>
<translation>Do you want to convert the folder to a {0}? This action cannot be reversed.</translation> <translation>Do you want to convert the folder to a {0}? This action cannot be reversed.</translation>
</message> </message>
@@ -4663,7 +4654,7 @@
<context> <context>
<name>_UpdatableMenu</name> <name>_UpdatableMenu</name>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1681" /> <location filename="../novelwriter/gui/projtree.py" line="1675" />
<source>From Template</source> <source>From Template</source>
<translation>From Template</translation> <translation>From Template</translation>
</message> </message>
+1722 -1854
View File
File diff suppressed because it is too large Load Diff
+108 -117
View File
@@ -1400,7 +1400,7 @@
<translation>Alcune modifiche non saranno applicate fino al riavvio di novelWriter.</translation> <translation>Alcune modifiche non saranno applicate fino al riavvio di novelWriter.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/guimain.py" line="1401" /> <location filename="../novelwriter/guimain.py" line="1403" />
<source>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}.</source> <source>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}.</source>
<translation>Impossibile trovare il riferimento per il tag '{0}'. O non esiste, o l'indice è obsoleto. L'indice può essere aggiornato dal menu Strumenti, o premendo {1}.</translation> <translation>Impossibile trovare il riferimento per il tag '{0}'. O non esiste, o l'indice è obsoleto. L'indice può essere aggiornato dal menu Strumenti, o premendo {1}.</translation>
</message> </message>
@@ -3018,118 +3018,118 @@
<context> <context>
<name>GuiProjectTree</name> <name>GuiProjectTree</name>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="559" /> <location filename="../novelwriter/gui/projtree.py" line="513" />
<source>Active</source> <source>Active</source>
<translation>Attivo</translation> <translation>Attivo</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="560" /> <location filename="../novelwriter/gui/projtree.py" line="514" />
<source>Inactive</source> <source>Inactive</source>
<translation>Inattivo</translation> <translation>Inattivo</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="647" /> <location filename="../novelwriter/gui/projtree.py" line="515" />
<source>Did not find anywhere to add the file or folder!</source>
<translation>Non è stato trovato alcun posto dove aggiungere il file o la cartella!</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="656" />
<source>Cannot add new files or folders to the Trash folder.</source>
<translation>Impossibile aggiungere nuovi file o cartelle alla cartella Cestino.</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="666" />
<source>New Note</source>
<translation>Nuova nota</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="669" />
<source>New Chapter</source>
<translation>Nuovo capitolo</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="672" />
<source>New Scene</source>
<translation>Nuova scena</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="675" />
<source>New Document</source>
<translation>Nuovo documento</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="678" />
<source>New Folder</source>
<translation>Nuova cartella</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="893" />
<source>There is currently no Trash folder in this project.</source>
<translation>Al momento non c'è una cartella Cestino in questo progetto.</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="902" />
<source>The Trash folder is already empty.</source>
<translation>La cartella Cestino è già vuota.</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="906" />
<source>Permanently delete {0} file(s) from Trash?</source> <source>Permanently delete {0} file(s) from Trash?</source>
<translation>Eliminare definitivamente {0} file(s) dal cestino?</translation> <translation>Eliminare definitivamente {0} file(s) dal cestino?</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="952" /> <location filename="../novelwriter/gui/projtree.py" line="648" />
<source>Did not find anywhere to add the file or folder!</source>
<translation>Non è stato trovato alcun posto dove aggiungere il file o la cartella!</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="657" />
<source>Cannot add new files or folders to the Trash folder.</source>
<translation>Impossibile aggiungere nuovi file o cartelle alla cartella Cestino.</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="667" />
<source>New Note</source>
<translation>Nuova nota</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="670" />
<source>New Chapter</source>
<translation>Nuovo capitolo</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="673" />
<source>New Scene</source>
<translation>Nuova scena</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="676" />
<source>New Document</source>
<translation>Nuovo documento</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="679" />
<source>New Folder</source>
<translation>Nuova cartella</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="894" />
<source>There is currently no Trash folder in this project.</source>
<translation>Al momento non c'è una cartella Cestino in questo progetto.</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="903" />
<source>The Trash folder is already empty.</source>
<translation>La cartella Cestino è già vuota.</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="950" />
<source>Move '{0}' to Trash?</source> <source>Move '{0}' to Trash?</source>
<translation>Spostare '{0}' nel Cestino?</translation> <translation>Spostare '{0}' nel Cestino?</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="984" /> <location filename="../novelwriter/gui/projtree.py" line="982" />
<source>Root folders can only be deleted when they are empty.</source> <source>Root folders can only be deleted when they are empty.</source>
<translation>Le cartelle radice possono essere eliminate solo quando sono vuote.</translation> <translation>Le cartelle radice possono essere eliminate solo quando sono vuote.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1003" /> <location filename="../novelwriter/gui/projtree.py" line="1001" />
<source>Permanently delete '{0}'?</source> <source>Permanently delete '{0}'?</source>
<translation>Eliminare definitivamente '{0}'?</translation> <translation>Eliminare definitivamente '{0}'?</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1298" /> <location filename="../novelwriter/gui/projtree.py" line="1292" />
<source>Drag and drop is only allowed for single items, non-root items, or multiple items with the same parent.</source> <source>Drag and drop is only allowed for single items, non-root items, or multiple items with the same parent.</source>
<translation>Il trascinamento è consentito solo per singoli oggetti, oggetti non radice, o più oggetti con lo stesso genitore.</translation> <translation>Il trascinamento è consentito solo per singoli oggetti, oggetti non radice, o più oggetti con lo stesso genitore.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1430" /> <location filename="../novelwriter/gui/projtree.py" line="1424" />
<source>No documents selected for merging.</source> <source>No documents selected for merging.</source>
<translation>Nessun documento selezionato per la fusione.</translation> <translation>Nessun documento selezionato per la fusione.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1438" /> <location filename="../novelwriter/gui/projtree.py" line="1432" />
<source>Merged</source> <source>Merged</source>
<translation>Uniti</translation> <translation>Uniti</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1518" /> <location filename="../novelwriter/gui/projtree.py" line="1512" />
<location filename="../novelwriter/gui/projtree.py" line="1454" /> <location filename="../novelwriter/gui/projtree.py" line="1448" />
<source>Could not write document content.</source> <source>Could not write document content.</source>
<translation>Impossibile scrivere il contenuto del documento.</translation> <translation>Impossibile scrivere il contenuto del documento.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1540" /> <location filename="../novelwriter/gui/projtree.py" line="1534" />
<source>Do you want to duplicate this document?</source> <source>Do you want to duplicate this document?</source>
<translation>Vuoi duplicare questo documento?</translation> <translation>Vuoi duplicare questo documento?</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1542" /> <location filename="../novelwriter/gui/projtree.py" line="1536" />
<source>Do you want to duplicate this item and all child items?</source> <source>Do you want to duplicate this item and all child items?</source>
<translation>Vuoi duplicare questo elemento e tutti gli elementi figli?</translation> <translation>Vuoi duplicare questo elemento e tutti gli elementi figli?</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1556" /> <location filename="../novelwriter/gui/projtree.py" line="1550" />
<source>Could not duplicate all items.</source> <source>Could not duplicate all items.</source>
<translation>Impossibile duplicare tutti gli elementi.</translation> <translation>Impossibile duplicare tutti gli elementi.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1613" /> <location filename="../novelwriter/gui/projtree.py" line="1607" />
<source>There is nowhere to add item with name '{0}'.</source> <source>There is nowhere to add item with name '{0}'.</source>
<translation>Non c'è nessun posto dove aggiungere un elemento con il nome '{0}.</translation> <translation>Non c'è nessun posto dove aggiungere un elemento con il nome '{0}.</translation>
</message> </message>
@@ -3474,73 +3474,73 @@
<translation>Progetto salvato: {0}</translation> <translation>Progetto salvato: {0}</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="427" /> <location filename="../novelwriter/core/project.py" line="428" />
<source>Backing up project ...</source> <source>Backing up project ...</source>
<translation>Crea una copia di backup ...</translation> <translation>Crea una copia di backup ...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="430" /> <location filename="../novelwriter/core/project.py" line="431" />
<source>Cannot backup project because no project name is set. Please set a Project Name in Project Settings.</source> <source>Cannot backup project because no project name is set. Please set a Project Name in Project Settings.</source>
<translation>Impossibile eseguire il backup del progetto perché nessun nome del progetto è impostato. Si prega di impostare un nome del progetto nelle impostazioni del progetto.</translation> <translation>Impossibile eseguire il backup del progetto perché nessun nome del progetto è impostato. Si prega di impostare un nome del progetto nelle impostazioni del progetto.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="442" /> <location filename="../novelwriter/core/project.py" line="443" />
<source>Could not create backup folder.</source> <source>Could not create backup folder.</source>
<translation>Impossibile creare la cartella di backup.</translation> <translation>Impossibile creare la cartella di backup.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="451" /> <location filename="../novelwriter/core/project.py" line="452" />
<source>Created a backup of your project of size {0}B.</source> <source>Created a backup of your project of size {0}B.</source>
<translation>Creato un backup del progetto di dimensione {0}B.</translation> <translation>Creato un backup del progetto di dimensione {0}B.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="452" /> <location filename="../novelwriter/core/project.py" line="453" />
<source>Path: {0}</source> <source>Path: {0}</source>
<translation>Percorso: {0}</translation> <translation>Percorso: {0}</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="455" /> <location filename="../novelwriter/core/project.py" line="456" />
<source>Could not write backup archive.</source> <source>Could not write backup archive.</source>
<translation>Impossibile scrivere l'archivio di backup.</translation> <translation>Impossibile scrivere l'archivio di backup.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="458" /> <location filename="../novelwriter/core/project.py" line="459" />
<source>Project backed up to '{0}'</source> <source>Project backed up to '{0}'</source>
<translation>Eseguito il backup del progetto su '{0}'</translation> <translation>Eseguito il backup del progetto su '{0}'</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="472" /> <location filename="../novelwriter/core/project.py" line="473" />
<location filename="../novelwriter/core/project.py" line="468" /> <location filename="../novelwriter/core/project.py" line="469" />
<source>New</source> <source>New</source>
<translation>Nuovo</translation> <translation>Nuovo</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="469" /> <location filename="../novelwriter/core/project.py" line="470" />
<source>Note</source> <source>Note</source>
<translation>Nota</translation> <translation>Nota</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="470" /> <location filename="../novelwriter/core/project.py" line="471" />
<source>Draft</source> <source>Draft</source>
<translation>Bozza</translation> <translation>Bozza</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="471" /> <location filename="../novelwriter/core/project.py" line="472" />
<source>Finished</source> <source>Finished</source>
<translation>Finito</translation> <translation>Finito</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="473" /> <location filename="../novelwriter/core/project.py" line="474" />
<source>Minor</source> <source>Minor</source>
<translation>Minore</translation> <translation>Minore</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="474" /> <location filename="../novelwriter/core/project.py" line="475" />
<source>Major</source> <source>Major</source>
<translation>Maggiore</translation> <translation>Maggiore</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="475" /> <location filename="../novelwriter/core/project.py" line="476" />
<source>Main</source> <source>Main</source>
<translation>Principale</translation> <translation>Principale</translation>
</message> </message>
@@ -4520,142 +4520,133 @@
<context> <context>
<name>_TreeContextMenu</name> <name>_TreeContextMenu</name>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1765" /> <location filename="../novelwriter/gui/projtree.py" line="1759" />
<source>Empty Trash</source> <source>Empty Trash</source>
<translation>Svuota il cestino</translation> <translation>Svuota il cestino</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1785" /> <location filename="../novelwriter/gui/projtree.py" line="1779" />
<source>Rename</source> <source>Rename</source>
<translation>Rinomina</translation> <translation>Rinomina</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1817" /> <location filename="../novelwriter/gui/projtree.py" line="1815" />
<source>Open Document</source> <source>Open Document</source>
<translation>Apri documento</translation> <translation>Apri documento</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1821" /> <location filename="../novelwriter/gui/projtree.py" line="1819" />
<source>View Document</source> <source>View Document</source>
<translation>Visualizza documento</translation> <translation>Visualizza documento</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1829" /> <location filename="../novelwriter/gui/projtree.py" line="1827" />
<source>Create New ...</source> <source>Create New ...</source>
<translation>Crea nuovo ...</translation> <translation>Crea nuovo ...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1840" /> <location filename="../novelwriter/gui/projtree.py" line="1838" />
<source>Rename to Heading</source> <source>Rename to Heading</source>
<translation>Rinomina nell'intestazione</translation> <translation>Rinomina nell'intestazione</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1849" /> <location filename="../novelwriter/gui/projtree.py" line="1847" />
<source>Set Active to ...</source> <source>Set Active to ...</source>
<translation>Imposta attività su ...</translation> <translation>Imposta attività su ...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1850" /> <location filename="../novelwriter/gui/projtree.py" line="1853" />
<source>Active</source>
<translation>Attivo</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="1852" />
<source>Inactive</source>
<translation>Non attivo</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="1855" />
<source>Toggle Active</source> <source>Toggle Active</source>
<translation>Commuta Attiva/Disattiva</translation> <translation>Commuta Attiva/Disattiva</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1862" /> <location filename="../novelwriter/gui/projtree.py" line="1860" />
<source>Set Status to ...</source> <source>Set Status to ...</source>
<translation>Imposta lo stato su ...</translation> <translation>Imposta lo stato su ...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1891" /> <location filename="../novelwriter/gui/projtree.py" line="1889" />
<location filename="../novelwriter/gui/projtree.py" line="1874" /> <location filename="../novelwriter/gui/projtree.py" line="1872" />
<source>Manage Labels ...</source> <source>Manage Labels ...</source>
<translation>Gestisci Etichette ...</translation> <translation>Gestisci Etichette ...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1879" /> <location filename="../novelwriter/gui/projtree.py" line="1877" />
<source>Set Importance to ...</source> <source>Set Importance to ...</source>
<translation>Imposta l'importanza su ...</translation> <translation>Imposta l'importanza su ...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1899" /> <location filename="../novelwriter/gui/projtree.py" line="1897" />
<source>Transform ...</source> <source>Transform ...</source>
<translation>Trasforma ...</translation> <translation>Trasforma ...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1924" /> <location filename="../novelwriter/gui/projtree.py" line="1922" />
<location filename="../novelwriter/gui/projtree.py" line="1920" /> <location filename="../novelwriter/gui/projtree.py" line="1918" />
<location filename="../novelwriter/gui/projtree.py" line="1916" /> <location filename="../novelwriter/gui/projtree.py" line="1914" />
<location filename="../novelwriter/gui/projtree.py" line="1912" /> <location filename="../novelwriter/gui/projtree.py" line="1910" />
<source>Convert to {0}</source> <source>Convert to {0}</source>
<translation>Converti in {0}</translation> <translation>Converti in {0}</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1928" /> <location filename="../novelwriter/gui/projtree.py" line="1926" />
<source>Merge Child Items into Self</source> <source>Merge Child Items into Self</source>
<translation>Fondi elementi figli</translation> <translation>Fondi elementi figli</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1930" /> <location filename="../novelwriter/gui/projtree.py" line="1928" />
<source>Merge Child Items into New</source> <source>Merge Child Items into New</source>
<translation>Fondi elementi figli in uno nuovo</translation> <translation>Fondi elementi figli in uno nuovo</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1934" /> <location filename="../novelwriter/gui/projtree.py" line="1932" />
<source>Merge Documents in Folder</source> <source>Merge Documents in Folder</source>
<translation>Fondi i documenti nella cartella</translation> <translation>Fondi i documenti nella cartella</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1938" /> <location filename="../novelwriter/gui/projtree.py" line="1936" />
<source>Split Document by Headers</source> <source>Split Document by Headers</source>
<translation>Dividi il documento alle intestazioni</translation> <translation>Dividi il documento alle intestazioni</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1948" /> <location filename="../novelwriter/gui/projtree.py" line="1946" />
<source>Expand All</source> <source>Expand All</source>
<translation>Espandi tutto</translation> <translation>Espandi tutto</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1950" /> <location filename="../novelwriter/gui/projtree.py" line="1948" />
<source>Collapse All</source> <source>Collapse All</source>
<translation>Collassa tutto</translation> <translation>Collassa tutto</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1952" /> <location filename="../novelwriter/gui/projtree.py" line="1950" />
<source>Duplicate from Here</source> <source>Duplicate from Here</source>
<translation>Duplica da qui</translation> <translation>Duplica da qui</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1955" /> <location filename="../novelwriter/gui/projtree.py" line="1953" />
<source>Duplicate Document</source> <source>Duplicate Document</source>
<translation>Duplica il documento</translation> <translation>Duplica il documento</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1959" /> <location filename="../novelwriter/gui/projtree.py" line="1969" />
<location filename="../novelwriter/gui/projtree.py" line="1957" />
<source>Delete Permanently</source> <source>Delete Permanently</source>
<translation>Elimina definitivamente</translation> <translation>Elimina definitivamente</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1969" /> <location filename="../novelwriter/gui/projtree.py" line="1972" />
<location filename="../novelwriter/gui/projtree.py" line="1962" /> <location filename="../novelwriter/gui/projtree.py" line="1960" />
<source>Move to Trash</source> <source>Move to Trash</source>
<translation>Sposta nel cestino</translation> <translation>Sposta nel cestino</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1981" /> <location filename="../novelwriter/gui/projtree.py" line="1983" />
<source>Move {0} items to Trash?</source> <source>Move {0} items to Trash?</source>
<translation>Spostare {0} elementi nel cestino?</translation> <translation>Spostare {0} elementi nel cestino?</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="2060" /> <location filename="../novelwriter/gui/projtree.py" line="2068" />
<source>Do you want to convert the folder to a {0}? This action cannot be reversed.</source> <source>Do you want to convert the folder to a {0}? This action cannot be reversed.</source>
<translation>Vuoi convertire la cartella in un {0}? Questa azione non può essere annullata.</translation> <translation>Vuoi convertire la cartella in un {0}? Questa azione non può essere annullata.</translation>
</message> </message>
@@ -4663,7 +4654,7 @@
<context> <context>
<name>_UpdatableMenu</name> <name>_UpdatableMenu</name>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1681" /> <location filename="../novelwriter/gui/projtree.py" line="1675" />
<source>From Template</source> <source>From Template</source>
<translation>Dal modello</translation> <translation>Dal modello</translation>
</message> </message>
+108 -117
View File
@@ -1400,7 +1400,7 @@
<translation>novelWriterが再起動されるまで適用されません</translation> <translation>novelWriterが再起動されるまで適用されません</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/guimain.py" line="1401" /> <location filename="../novelwriter/guimain.py" line="1403" />
<source>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}.</source> <source>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}.</source>
<translation> '{0}' {1} </translation> <translation> '{0}' {1} </translation>
</message> </message>
@@ -3018,118 +3018,118 @@
<context> <context>
<name>GuiProjectTree</name> <name>GuiProjectTree</name>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="559" /> <location filename="../novelwriter/gui/projtree.py" line="513" />
<source>Active</source> <source>Active</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="560" /> <location filename="../novelwriter/gui/projtree.py" line="514" />
<source>Inactive</source> <source>Inactive</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="647" /> <location filename="../novelwriter/gui/projtree.py" line="515" />
<source>Did not find anywhere to add the file or folder!</source>
<translation></translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="656" />
<source>Cannot add new files or folders to the Trash folder.</source>
<translation></translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="666" />
<source>New Note</source>
<translation></translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="669" />
<source>New Chapter</source>
<translation></translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="672" />
<source>New Scene</source>
<translation></translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="675" />
<source>New Document</source>
<translation></translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="678" />
<source>New Folder</source>
<translation></translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="893" />
<source>There is currently no Trash folder in this project.</source>
<translation></translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="902" />
<source>The Trash folder is already empty.</source>
<translation></translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="906" />
<source>Permanently delete {0} file(s) from Trash?</source> <source>Permanently delete {0} file(s) from Trash?</source>
<translation> {0} </translation> <translation> {0} </translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="952" /> <location filename="../novelwriter/gui/projtree.py" line="648" />
<source>Did not find anywhere to add the file or folder!</source>
<translation></translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="657" />
<source>Cannot add new files or folders to the Trash folder.</source>
<translation></translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="667" />
<source>New Note</source>
<translation></translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="670" />
<source>New Chapter</source>
<translation></translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="673" />
<source>New Scene</source>
<translation></translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="676" />
<source>New Document</source>
<translation></translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="679" />
<source>New Folder</source>
<translation></translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="894" />
<source>There is currently no Trash folder in this project.</source>
<translation></translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="903" />
<source>The Trash folder is already empty.</source>
<translation></translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="950" />
<source>Move '{0}' to Trash?</source> <source>Move '{0}' to Trash?</source>
<translation>'{0}' </translation> <translation>'{0}' </translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="984" /> <location filename="../novelwriter/gui/projtree.py" line="982" />
<source>Root folders can only be deleted when they are empty.</source> <source>Root folders can only be deleted when they are empty.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1003" /> <location filename="../novelwriter/gui/projtree.py" line="1001" />
<source>Permanently delete '{0}'?</source> <source>Permanently delete '{0}'?</source>
<translation>'{0}' </translation> <translation>'{0}' </translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1298" /> <location filename="../novelwriter/gui/projtree.py" line="1292" />
<source>Drag and drop is only allowed for single items, non-root items, or multiple items with the same parent.</source> <source>Drag and drop is only allowed for single items, non-root items, or multiple items with the same parent.</source>
<translation>&amp;使</translation> <translation>&amp;使</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1430" /> <location filename="../novelwriter/gui/projtree.py" line="1424" />
<source>No documents selected for merging.</source> <source>No documents selected for merging.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1438" /> <location filename="../novelwriter/gui/projtree.py" line="1432" />
<source>Merged</source> <source>Merged</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1518" /> <location filename="../novelwriter/gui/projtree.py" line="1512" />
<location filename="../novelwriter/gui/projtree.py" line="1454" /> <location filename="../novelwriter/gui/projtree.py" line="1448" />
<source>Could not write document content.</source> <source>Could not write document content.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1540" /> <location filename="../novelwriter/gui/projtree.py" line="1534" />
<source>Do you want to duplicate this document?</source> <source>Do you want to duplicate this document?</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1542" /> <location filename="../novelwriter/gui/projtree.py" line="1536" />
<source>Do you want to duplicate this item and all child items?</source> <source>Do you want to duplicate this item and all child items?</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1556" /> <location filename="../novelwriter/gui/projtree.py" line="1550" />
<source>Could not duplicate all items.</source> <source>Could not duplicate all items.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1613" /> <location filename="../novelwriter/gui/projtree.py" line="1607" />
<source>There is nowhere to add item with name '{0}'.</source> <source>There is nowhere to add item with name '{0}'.</source>
<translation>'{0}' </translation> <translation>'{0}' </translation>
</message> </message>
@@ -3474,73 +3474,73 @@
<translation>: {0}</translation> <translation>: {0}</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="427" /> <location filename="../novelwriter/core/project.py" line="428" />
<source>Backing up project ...</source> <source>Backing up project ...</source>
<translation>...</translation> <translation>...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="430" /> <location filename="../novelwriter/core/project.py" line="431" />
<source>Cannot backup project because no project name is set. Please set a Project Name in Project Settings.</source> <source>Cannot backup project because no project name is set. Please set a Project Name in Project Settings.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="442" /> <location filename="../novelwriter/core/project.py" line="443" />
<source>Could not create backup folder.</source> <source>Could not create backup folder.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="451" /> <location filename="../novelwriter/core/project.py" line="452" />
<source>Created a backup of your project of size {0}B.</source> <source>Created a backup of your project of size {0}B.</source>
<translation> {0}Bのバックアップを作成しました</translation> <translation> {0}Bのバックアップを作成しました</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="452" /> <location filename="../novelwriter/core/project.py" line="453" />
<source>Path: {0}</source> <source>Path: {0}</source>
<translation>: {0}</translation> <translation>: {0}</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="455" /> <location filename="../novelwriter/core/project.py" line="456" />
<source>Could not write backup archive.</source> <source>Could not write backup archive.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="458" /> <location filename="../novelwriter/core/project.py" line="459" />
<source>Project backed up to '{0}'</source> <source>Project backed up to '{0}'</source>
<translation> '{0}'</translation> <translation> '{0}'</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="472" /> <location filename="../novelwriter/core/project.py" line="473" />
<location filename="../novelwriter/core/project.py" line="468" /> <location filename="../novelwriter/core/project.py" line="469" />
<source>New</source> <source>New</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="469" /> <location filename="../novelwriter/core/project.py" line="470" />
<source>Note</source> <source>Note</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="470" /> <location filename="../novelwriter/core/project.py" line="471" />
<source>Draft</source> <source>Draft</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="471" /> <location filename="../novelwriter/core/project.py" line="472" />
<source>Finished</source> <source>Finished</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="473" /> <location filename="../novelwriter/core/project.py" line="474" />
<source>Minor</source> <source>Minor</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="474" /> <location filename="../novelwriter/core/project.py" line="475" />
<source>Major</source> <source>Major</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="475" /> <location filename="../novelwriter/core/project.py" line="476" />
<source>Main</source> <source>Main</source>
<translation></translation> <translation></translation>
</message> </message>
@@ -4520,142 +4520,133 @@
<context> <context>
<name>_TreeContextMenu</name> <name>_TreeContextMenu</name>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1765" /> <location filename="../novelwriter/gui/projtree.py" line="1759" />
<source>Empty Trash</source> <source>Empty Trash</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1785" /> <location filename="../novelwriter/gui/projtree.py" line="1779" />
<source>Rename</source> <source>Rename</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1817" /> <location filename="../novelwriter/gui/projtree.py" line="1815" />
<source>Open Document</source> <source>Open Document</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1821" /> <location filename="../novelwriter/gui/projtree.py" line="1819" />
<source>View Document</source> <source>View Document</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1829" /> <location filename="../novelwriter/gui/projtree.py" line="1827" />
<source>Create New ...</source> <source>Create New ...</source>
<translation>...</translation> <translation>...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1840" /> <location filename="../novelwriter/gui/projtree.py" line="1838" />
<source>Rename to Heading</source> <source>Rename to Heading</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1849" /> <location filename="../novelwriter/gui/projtree.py" line="1847" />
<source>Set Active to ...</source> <source>Set Active to ...</source>
<translation>...</translation> <translation>...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1850" /> <location filename="../novelwriter/gui/projtree.py" line="1853" />
<source>Active</source>
<translation></translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="1852" />
<source>Inactive</source>
<translation></translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="1855" />
<source>Toggle Active</source> <source>Toggle Active</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1862" /> <location filename="../novelwriter/gui/projtree.py" line="1860" />
<source>Set Status to ...</source> <source>Set Status to ...</source>
<translation>... </translation> <translation>... </translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1891" /> <location filename="../novelwriter/gui/projtree.py" line="1889" />
<location filename="../novelwriter/gui/projtree.py" line="1874" /> <location filename="../novelwriter/gui/projtree.py" line="1872" />
<source>Manage Labels ...</source> <source>Manage Labels ...</source>
<translation>...</translation> <translation>...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1879" /> <location filename="../novelwriter/gui/projtree.py" line="1877" />
<source>Set Importance to ...</source> <source>Set Importance to ...</source>
<translation>... </translation> <translation>... </translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1899" /> <location filename="../novelwriter/gui/projtree.py" line="1897" />
<source>Transform ...</source> <source>Transform ...</source>
<translation>...</translation> <translation>...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1924" /> <location filename="../novelwriter/gui/projtree.py" line="1922" />
<location filename="../novelwriter/gui/projtree.py" line="1920" /> <location filename="../novelwriter/gui/projtree.py" line="1918" />
<location filename="../novelwriter/gui/projtree.py" line="1916" /> <location filename="../novelwriter/gui/projtree.py" line="1914" />
<location filename="../novelwriter/gui/projtree.py" line="1912" /> <location filename="../novelwriter/gui/projtree.py" line="1910" />
<source>Convert to {0}</source> <source>Convert to {0}</source>
<translation>{0} </translation> <translation>{0} </translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1928" /> <location filename="../novelwriter/gui/projtree.py" line="1926" />
<source>Merge Child Items into Self</source> <source>Merge Child Items into Self</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1930" /> <location filename="../novelwriter/gui/projtree.py" line="1928" />
<source>Merge Child Items into New</source> <source>Merge Child Items into New</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1934" /> <location filename="../novelwriter/gui/projtree.py" line="1932" />
<source>Merge Documents in Folder</source> <source>Merge Documents in Folder</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1938" /> <location filename="../novelwriter/gui/projtree.py" line="1936" />
<source>Split Document by Headers</source> <source>Split Document by Headers</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1948" /> <location filename="../novelwriter/gui/projtree.py" line="1946" />
<source>Expand All</source> <source>Expand All</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1950" /> <location filename="../novelwriter/gui/projtree.py" line="1948" />
<source>Collapse All</source> <source>Collapse All</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1952" /> <location filename="../novelwriter/gui/projtree.py" line="1950" />
<source>Duplicate from Here</source> <source>Duplicate from Here</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1955" /> <location filename="../novelwriter/gui/projtree.py" line="1953" />
<source>Duplicate Document</source> <source>Duplicate Document</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1959" /> <location filename="../novelwriter/gui/projtree.py" line="1969" />
<location filename="../novelwriter/gui/projtree.py" line="1957" />
<source>Delete Permanently</source> <source>Delete Permanently</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1969" /> <location filename="../novelwriter/gui/projtree.py" line="1972" />
<location filename="../novelwriter/gui/projtree.py" line="1962" /> <location filename="../novelwriter/gui/projtree.py" line="1960" />
<source>Move to Trash</source> <source>Move to Trash</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1981" /> <location filename="../novelwriter/gui/projtree.py" line="1983" />
<source>Move {0} items to Trash?</source> <source>Move {0} items to Trash?</source>
<translation>{0} </translation> <translation>{0} </translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="2060" /> <location filename="../novelwriter/gui/projtree.py" line="2068" />
<source>Do you want to convert the folder to a {0}? This action cannot be reversed.</source> <source>Do you want to convert the folder to a {0}? This action cannot be reversed.</source>
<translation> {0}  </translation> <translation> {0}  </translation>
</message> </message>
@@ -4663,7 +4654,7 @@
<context> <context>
<name>_UpdatableMenu</name> <name>_UpdatableMenu</name>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1681" /> <location filename="../novelwriter/gui/projtree.py" line="1675" />
<source>From Template</source> <source>From Template</source>
<translation></translation> <translation></translation>
</message> </message>
+108 -117
View File
@@ -1400,7 +1400,7 @@
<translation>Noen endringer vil ikke tas i bruk før neste gang novelWriter startes.</translation> <translation>Noen endringer vil ikke tas i bruk før neste gang novelWriter startes.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/guimain.py" line="1401" /> <location filename="../novelwriter/guimain.py" line="1403" />
<source>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}.</source> <source>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}.</source>
<translation>Kunne ikke finne referansen til knagg {0}. Enten finnes den ikke, eller er prosjektets indeks ikke oppdatert. Indeksen kan oppdateres fra Verktøy-menyen eller ved å trykke {1}.</translation> <translation>Kunne ikke finne referansen til knagg {0}. Enten finnes den ikke, eller er prosjektets indeks ikke oppdatert. Indeksen kan oppdateres fra Verktøy-menyen eller ved å trykke {1}.</translation>
</message> </message>
@@ -3018,118 +3018,118 @@
<context> <context>
<name>GuiProjectTree</name> <name>GuiProjectTree</name>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="559" /> <location filename="../novelwriter/gui/projtree.py" line="513" />
<source>Active</source> <source>Active</source>
<translation>Aktiv</translation> <translation>Aktiv</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="560" /> <location filename="../novelwriter/gui/projtree.py" line="514" />
<source>Inactive</source> <source>Inactive</source>
<translation>Inaktiv</translation> <translation>Inaktiv</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="647" /> <location filename="../novelwriter/gui/projtree.py" line="515" />
<source>Did not find anywhere to add the file or folder!</source>
<translation>Fant ikke noe sted å legge til filen eller mappen!</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="656" />
<source>Cannot add new files or folders to the Trash folder.</source>
<translation>Kan ikke legge til nye filer eller mapper i papirkurvmappen.</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="666" />
<source>New Note</source>
<translation>Nytt notat</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="669" />
<source>New Chapter</source>
<translation>Nytt kapittel</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="672" />
<source>New Scene</source>
<translation>Ny scene</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="675" />
<source>New Document</source>
<translation>Nytt dokument</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="678" />
<source>New Folder</source>
<translation>Ny mappe</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="893" />
<source>There is currently no Trash folder in this project.</source>
<translation>Det er for øyeblikket ingen papirkurv i dette prosjektet.</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="902" />
<source>The Trash folder is already empty.</source>
<translation>Papirkurven er allerede tom.</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="906" />
<source>Permanently delete {0} file(s) from Trash?</source> <source>Permanently delete {0} file(s) from Trash?</source>
<translation>Vil du slette {0} filer i papirkurven for godt?</translation> <translation>Vil du slette {0} filer i papirkurven for godt?</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="952" /> <location filename="../novelwriter/gui/projtree.py" line="648" />
<source>Did not find anywhere to add the file or folder!</source>
<translation>Fant ikke noe sted å legge til filen eller mappen!</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="657" />
<source>Cannot add new files or folders to the Trash folder.</source>
<translation>Kan ikke legge til nye filer eller mapper i papirkurvmappen.</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="667" />
<source>New Note</source>
<translation>Nytt notat</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="670" />
<source>New Chapter</source>
<translation>Nytt kapittel</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="673" />
<source>New Scene</source>
<translation>Ny scene</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="676" />
<source>New Document</source>
<translation>Nytt dokument</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="679" />
<source>New Folder</source>
<translation>Ny mappe</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="894" />
<source>There is currently no Trash folder in this project.</source>
<translation>Det er for øyeblikket ingen papirkurv i dette prosjektet.</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="903" />
<source>The Trash folder is already empty.</source>
<translation>Papirkurven er allerede tom.</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="950" />
<source>Move '{0}' to Trash?</source> <source>Move '{0}' to Trash?</source>
<translation>Vil du flytte filen "{0}" til søpla?</translation> <translation>Vil du flytte filen "{0}" til søpla?</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="984" /> <location filename="../novelwriter/gui/projtree.py" line="982" />
<source>Root folders can only be deleted when they are empty.</source> <source>Root folders can only be deleted when they are empty.</source>
<translation>Rotmapper kan bare slettes når de er tomme.</translation> <translation>Rotmapper kan bare slettes når de er tomme.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1003" /> <location filename="../novelwriter/gui/projtree.py" line="1001" />
<source>Permanently delete '{0}'?</source> <source>Permanently delete '{0}'?</source>
<translation>Slette filen "{0}" for godt?</translation> <translation>Slette filen "{0}" for godt?</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1298" /> <location filename="../novelwriter/gui/projtree.py" line="1292" />
<source>Drag and drop is only allowed for single items, non-root items, or multiple items with the same parent.</source> <source>Drag and drop is only allowed for single items, non-root items, or multiple items with the same parent.</source>
<translation>Dra og slipp er bare tillatt for enkeltelementer, ikke hovedmapper, eller elementer under samme mappe eller dokument.</translation> <translation>Dra og slipp er bare tillatt for enkeltelementer, ikke hovedmapper, eller elementer under samme mappe eller dokument.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1430" /> <location filename="../novelwriter/gui/projtree.py" line="1424" />
<source>No documents selected for merging.</source> <source>No documents selected for merging.</source>
<translation>Ingen dokumenter er valgt for sammenslåing.</translation> <translation>Ingen dokumenter er valgt for sammenslåing.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1438" /> <location filename="../novelwriter/gui/projtree.py" line="1432" />
<source>Merged</source> <source>Merged</source>
<translation>Sammenslått</translation> <translation>Sammenslått</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1518" /> <location filename="../novelwriter/gui/projtree.py" line="1512" />
<location filename="../novelwriter/gui/projtree.py" line="1454" /> <location filename="../novelwriter/gui/projtree.py" line="1448" />
<source>Could not write document content.</source> <source>Could not write document content.</source>
<translation>Kan ikke skrive til dokumentet.</translation> <translation>Kan ikke skrive til dokumentet.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1540" /> <location filename="../novelwriter/gui/projtree.py" line="1534" />
<source>Do you want to duplicate this document?</source> <source>Do you want to duplicate this document?</source>
<translation>Vil du duplisere dette dokumentet?</translation> <translation>Vil du duplisere dette dokumentet?</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1542" /> <location filename="../novelwriter/gui/projtree.py" line="1536" />
<source>Do you want to duplicate this item and all child items?</source> <source>Do you want to duplicate this item and all child items?</source>
<translation>Vil du duplisere dette elementet og alle underelementer?</translation> <translation>Vil du duplisere dette elementet og alle underelementer?</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1556" /> <location filename="../novelwriter/gui/projtree.py" line="1550" />
<source>Could not duplicate all items.</source> <source>Could not duplicate all items.</source>
<translation>Kunne ikke duplisere alle elementer.</translation> <translation>Kunne ikke duplisere alle elementer.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1613" /> <location filename="../novelwriter/gui/projtree.py" line="1607" />
<source>There is nowhere to add item with name '{0}'.</source> <source>There is nowhere to add item with name '{0}'.</source>
<translation>Fant ikke noe sted å legge til enheten med navn {0}'.</translation> <translation>Fant ikke noe sted å legge til enheten med navn {0}'.</translation>
</message> </message>
@@ -3474,73 +3474,73 @@
<translation>Lagret prosjekt: {0}</translation> <translation>Lagret prosjekt: {0}</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="427" /> <location filename="../novelwriter/core/project.py" line="428" />
<source>Backing up project ...</source> <source>Backing up project ...</source>
<translation>Lager sikkerhetskopi ...</translation> <translation>Lager sikkerhetskopi ...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="430" /> <location filename="../novelwriter/core/project.py" line="431" />
<source>Cannot backup project because no project name is set. Please set a Project Name in Project Settings.</source> <source>Cannot backup project because no project name is set. Please set a Project Name in Project Settings.</source>
<translation>Kan ikke ta sikkerhetskopi av prosjektet da prosjektnavn ikke er satt. Du først sette et prosjektnavn i Prosjektinnstillinger.</translation> <translation>Kan ikke ta sikkerhetskopi av prosjektet da prosjektnavn ikke er satt. Du først sette et prosjektnavn i Prosjektinnstillinger.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="442" /> <location filename="../novelwriter/core/project.py" line="443" />
<source>Could not create backup folder.</source> <source>Could not create backup folder.</source>
<translation>Kunne ikke lage mappe til sikkerhetskopi.</translation> <translation>Kunne ikke lage mappe til sikkerhetskopi.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="451" /> <location filename="../novelwriter/core/project.py" line="452" />
<source>Created a backup of your project of size {0}B.</source> <source>Created a backup of your project of size {0}B.</source>
<translation>Opprettet en sikkerhetskopi av prosjektet med størrelse {0}B.</translation> <translation>Opprettet en sikkerhetskopi av prosjektet med størrelse {0}B.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="452" /> <location filename="../novelwriter/core/project.py" line="453" />
<source>Path: {0}</source> <source>Path: {0}</source>
<translation>Filbane: {0}</translation> <translation>Filbane: {0}</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="455" /> <location filename="../novelwriter/core/project.py" line="456" />
<source>Could not write backup archive.</source> <source>Could not write backup archive.</source>
<translation>Kunne ikke lage sikkerhetskopi.</translation> <translation>Kunne ikke lage sikkerhetskopi.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="458" /> <location filename="../novelwriter/core/project.py" line="459" />
<source>Project backed up to '{0}'</source> <source>Project backed up to '{0}'</source>
<translation>Sikkerhetskopi skrevet til '{0}'</translation> <translation>Sikkerhetskopi skrevet til '{0}'</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="472" /> <location filename="../novelwriter/core/project.py" line="473" />
<location filename="../novelwriter/core/project.py" line="468" /> <location filename="../novelwriter/core/project.py" line="469" />
<source>New</source> <source>New</source>
<translation>Ny</translation> <translation>Ny</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="469" /> <location filename="../novelwriter/core/project.py" line="470" />
<source>Note</source> <source>Note</source>
<translation>Notat</translation> <translation>Notat</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="470" /> <location filename="../novelwriter/core/project.py" line="471" />
<source>Draft</source> <source>Draft</source>
<translation>Utkast</translation> <translation>Utkast</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="471" /> <location filename="../novelwriter/core/project.py" line="472" />
<source>Finished</source> <source>Finished</source>
<translation>Ferdig</translation> <translation>Ferdig</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="473" /> <location filename="../novelwriter/core/project.py" line="474" />
<source>Minor</source> <source>Minor</source>
<translation>Mindre</translation> <translation>Mindre</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="474" /> <location filename="../novelwriter/core/project.py" line="475" />
<source>Major</source> <source>Major</source>
<translation>Større</translation> <translation>Større</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="475" /> <location filename="../novelwriter/core/project.py" line="476" />
<source>Main</source> <source>Main</source>
<translation>Hoved</translation> <translation>Hoved</translation>
</message> </message>
@@ -4520,142 +4520,133 @@
<context> <context>
<name>_TreeContextMenu</name> <name>_TreeContextMenu</name>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1765" /> <location filename="../novelwriter/gui/projtree.py" line="1759" />
<source>Empty Trash</source> <source>Empty Trash</source>
<translation>Tøm papirkurven</translation> <translation>Tøm papirkurven</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1785" /> <location filename="../novelwriter/gui/projtree.py" line="1779" />
<source>Rename</source> <source>Rename</source>
<translation>Endre navn</translation> <translation>Endre navn</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1817" /> <location filename="../novelwriter/gui/projtree.py" line="1815" />
<source>Open Document</source> <source>Open Document</source>
<translation>Åpne dokument</translation> <translation>Åpne dokument</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1821" /> <location filename="../novelwriter/gui/projtree.py" line="1819" />
<source>View Document</source> <source>View Document</source>
<translation>Vis dokument</translation> <translation>Vis dokument</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1829" /> <location filename="../novelwriter/gui/projtree.py" line="1827" />
<source>Create New ...</source> <source>Create New ...</source>
<translation>Opprett ny ...</translation> <translation>Opprett ny ...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1840" /> <location filename="../novelwriter/gui/projtree.py" line="1838" />
<source>Rename to Heading</source> <source>Rename to Heading</source>
<translation>Endre navn til overskriften</translation> <translation>Endre navn til overskriften</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1849" /> <location filename="../novelwriter/gui/projtree.py" line="1847" />
<source>Set Active to ...</source> <source>Set Active to ...</source>
<translation>Sett aktiv til ...</translation> <translation>Sett aktiv til ...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1850" /> <location filename="../novelwriter/gui/projtree.py" line="1853" />
<source>Active</source>
<translation>Aktiv</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="1852" />
<source>Inactive</source>
<translation>Inaktiv</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="1855" />
<source>Toggle Active</source> <source>Toggle Active</source>
<translation>Aktiver/deaktiver</translation> <translation>Aktiver/deaktiver</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1862" /> <location filename="../novelwriter/gui/projtree.py" line="1860" />
<source>Set Status to ...</source> <source>Set Status to ...</source>
<translation>Sett status til ...</translation> <translation>Sett status til ...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1891" /> <location filename="../novelwriter/gui/projtree.py" line="1889" />
<location filename="../novelwriter/gui/projtree.py" line="1874" /> <location filename="../novelwriter/gui/projtree.py" line="1872" />
<source>Manage Labels ...</source> <source>Manage Labels ...</source>
<translation>Administrer etiketter ...</translation> <translation>Administrer etiketter ...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1879" /> <location filename="../novelwriter/gui/projtree.py" line="1877" />
<source>Set Importance to ...</source> <source>Set Importance to ...</source>
<translation>Sett viktighetsnivå til ...</translation> <translation>Sett viktighetsnivå til ...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1899" /> <location filename="../novelwriter/gui/projtree.py" line="1897" />
<source>Transform ...</source> <source>Transform ...</source>
<translation>Endre ...</translation> <translation>Endre ...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1924" /> <location filename="../novelwriter/gui/projtree.py" line="1922" />
<location filename="../novelwriter/gui/projtree.py" line="1920" /> <location filename="../novelwriter/gui/projtree.py" line="1918" />
<location filename="../novelwriter/gui/projtree.py" line="1916" /> <location filename="../novelwriter/gui/projtree.py" line="1914" />
<location filename="../novelwriter/gui/projtree.py" line="1912" /> <location filename="../novelwriter/gui/projtree.py" line="1910" />
<source>Convert to {0}</source> <source>Convert to {0}</source>
<translation>Konverter til {0}</translation> <translation>Konverter til {0}</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1928" /> <location filename="../novelwriter/gui/projtree.py" line="1926" />
<source>Merge Child Items into Self</source> <source>Merge Child Items into Self</source>
<translation>Lim inn underelementer i dette dokumentet</translation> <translation>Lim inn underelementer i dette dokumentet</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1930" /> <location filename="../novelwriter/gui/projtree.py" line="1928" />
<source>Merge Child Items into New</source> <source>Merge Child Items into New</source>
<translation>Lim inn underelementer i nytt dokument</translation> <translation>Lim inn underelementer i nytt dokument</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1934" /> <location filename="../novelwriter/gui/projtree.py" line="1932" />
<source>Merge Documents in Folder</source> <source>Merge Documents in Folder</source>
<translation>Slå sammen dokumenter i mappen</translation> <translation>Slå sammen dokumenter i mappen</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1938" /> <location filename="../novelwriter/gui/projtree.py" line="1936" />
<source>Split Document by Headers</source> <source>Split Document by Headers</source>
<translation>Del dokumentet etter overskrift</translation> <translation>Del dokumentet etter overskrift</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1948" /> <location filename="../novelwriter/gui/projtree.py" line="1946" />
<source>Expand All</source> <source>Expand All</source>
<translation>Utvid alle</translation> <translation>Utvid alle</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1950" /> <location filename="../novelwriter/gui/projtree.py" line="1948" />
<source>Collapse All</source> <source>Collapse All</source>
<translation>Lukk alle</translation> <translation>Lukk alle</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1952" /> <location filename="../novelwriter/gui/projtree.py" line="1950" />
<source>Duplicate from Here</source> <source>Duplicate from Here</source>
<translation>Dupliser herfra</translation> <translation>Dupliser herfra</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1955" /> <location filename="../novelwriter/gui/projtree.py" line="1953" />
<source>Duplicate Document</source> <source>Duplicate Document</source>
<translation>Dupliser dokument</translation> <translation>Dupliser dokument</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1959" /> <location filename="../novelwriter/gui/projtree.py" line="1969" />
<location filename="../novelwriter/gui/projtree.py" line="1957" />
<source>Delete Permanently</source> <source>Delete Permanently</source>
<translation>Slett permanent</translation> <translation>Slett permanent</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1969" /> <location filename="../novelwriter/gui/projtree.py" line="1972" />
<location filename="../novelwriter/gui/projtree.py" line="1962" /> <location filename="../novelwriter/gui/projtree.py" line="1960" />
<source>Move to Trash</source> <source>Move to Trash</source>
<translation>Flytt til papirkurv</translation> <translation>Flytt til papirkurv</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1981" /> <location filename="../novelwriter/gui/projtree.py" line="1983" />
<source>Move {0} items to Trash?</source> <source>Move {0} items to Trash?</source>
<translation>Vil du flytte {0} filer til papirkurven?</translation> <translation>Vil du flytte {0} filer til papirkurven?</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="2060" /> <location filename="../novelwriter/gui/projtree.py" line="2068" />
<source>Do you want to convert the folder to a {0}? This action cannot be reversed.</source> <source>Do you want to convert the folder to a {0}? This action cannot be reversed.</source>
<translation>Vil du konvertere mappen til et {0}? Denne handlingen kan ikke angres.</translation> <translation>Vil du konvertere mappen til et {0}? Denne handlingen kan ikke angres.</translation>
</message> </message>
@@ -4663,7 +4654,7 @@
<context> <context>
<name>_UpdatableMenu</name> <name>_UpdatableMenu</name>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1681" /> <location filename="../novelwriter/gui/projtree.py" line="1675" />
<source>From Template</source> <source>From Template</source>
<translation>Fra mal</translation> <translation>Fra mal</translation>
</message> </message>
+108 -117
View File
@@ -1400,7 +1400,7 @@
<translation>Sommige wijzigingen zullen niet worden toegepast totdat novelWriter opnieuw is gestart.</translation> <translation>Sommige wijzigingen zullen niet worden toegepast totdat novelWriter opnieuw is gestart.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/guimain.py" line="1401" /> <location filename="../novelwriter/guimain.py" line="1403" />
<source>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}.</source> <source>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}.</source>
<translation>Kon de verwijzing voor tag '{0}' niet vinden. Hij bestaat niet of de index is verouderd. De index kan worden bijgewerkt in het Hulpmiddelen menu, of door op {1} te drukken.</translation> <translation>Kon de verwijzing voor tag '{0}' niet vinden. Hij bestaat niet of de index is verouderd. De index kan worden bijgewerkt in het Hulpmiddelen menu, of door op {1} te drukken.</translation>
</message> </message>
@@ -3018,118 +3018,118 @@
<context> <context>
<name>GuiProjectTree</name> <name>GuiProjectTree</name>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="559" /> <location filename="../novelwriter/gui/projtree.py" line="513" />
<source>Active</source> <source>Active</source>
<translation>Actief</translation> <translation>Actief</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="560" /> <location filename="../novelwriter/gui/projtree.py" line="514" />
<source>Inactive</source> <source>Inactive</source>
<translation>Inactief</translation> <translation>Inactief</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="647" /> <location filename="../novelwriter/gui/projtree.py" line="515" />
<source>Did not find anywhere to add the file or folder!</source>
<translation>Kon geen plek vinden om het bestand of de map aan toe te voegen!</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="656" />
<source>Cannot add new files or folders to the Trash folder.</source>
<translation>Kan geen nieuwe bestanden of mappen toevoegen aan de Prullenbak map.</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="666" />
<source>New Note</source>
<translation>Nieuwe notitie</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="669" />
<source>New Chapter</source>
<translation>Nieuw Hoofdstuk</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="672" />
<source>New Scene</source>
<translation>Nieuwe Scène</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="675" />
<source>New Document</source>
<translation>Nieuw document</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="678" />
<source>New Folder</source>
<translation>Nieuwe map</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="893" />
<source>There is currently no Trash folder in this project.</source>
<translation>Er is momenteel geen Prullenbak map in dit project.</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="902" />
<source>The Trash folder is already empty.</source>
<translation>De Prullenbak map is al leeg.</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="906" />
<source>Permanently delete {0} file(s) from Trash?</source> <source>Permanently delete {0} file(s) from Trash?</source>
<translation>{0} bestand(en) permanent verwijderen uit de prullenbak?</translation> <translation>{0} bestand(en) permanent verwijderen uit de prullenbak?</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="952" /> <location filename="../novelwriter/gui/projtree.py" line="648" />
<source>Did not find anywhere to add the file or folder!</source>
<translation>Kon geen plek vinden om het bestand of de map aan toe te voegen!</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="657" />
<source>Cannot add new files or folders to the Trash folder.</source>
<translation>Kan geen nieuwe bestanden of mappen toevoegen aan de Prullenbak map.</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="667" />
<source>New Note</source>
<translation>Nieuwe notitie</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="670" />
<source>New Chapter</source>
<translation>Nieuw Hoofdstuk</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="673" />
<source>New Scene</source>
<translation>Nieuwe Scène</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="676" />
<source>New Document</source>
<translation>Nieuw document</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="679" />
<source>New Folder</source>
<translation>Nieuwe map</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="894" />
<source>There is currently no Trash folder in this project.</source>
<translation>Er is momenteel geen Prullenbak map in dit project.</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="903" />
<source>The Trash folder is already empty.</source>
<translation>De Prullenbak map is al leeg.</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="950" />
<source>Move '{0}' to Trash?</source> <source>Move '{0}' to Trash?</source>
<translation>Verplaats '{0}' naar Prullenbak?</translation> <translation>Verplaats '{0}' naar Prullenbak?</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="984" /> <location filename="../novelwriter/gui/projtree.py" line="982" />
<source>Root folders can only be deleted when they are empty.</source> <source>Root folders can only be deleted when they are empty.</source>
<translation>Root mappen kunnen alleen verwijderd worden wanneer ze leeg zijn.</translation> <translation>Root mappen kunnen alleen verwijderd worden wanneer ze leeg zijn.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1003" /> <location filename="../novelwriter/gui/projtree.py" line="1001" />
<source>Permanently delete '{0}'?</source> <source>Permanently delete '{0}'?</source>
<translation>'{0}' permanent verwijderen?</translation> <translation>'{0}' permanent verwijderen?</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1298" /> <location filename="../novelwriter/gui/projtree.py" line="1292" />
<source>Drag and drop is only allowed for single items, non-root items, or multiple items with the same parent.</source> <source>Drag and drop is only allowed for single items, non-root items, or multiple items with the same parent.</source>
<translation>Slepen en neerzetten is alleen toegestaan voor enkele items, niet-hoofditems of meerdere items met dezelfde bovenliggende item.</translation> <translation>Slepen en neerzetten is alleen toegestaan voor enkele items, niet-hoofditems of meerdere items met dezelfde bovenliggende item.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1430" /> <location filename="../novelwriter/gui/projtree.py" line="1424" />
<source>No documents selected for merging.</source> <source>No documents selected for merging.</source>
<translation>Geen documenten geselecteerd voor samenvoegen.</translation> <translation>Geen documenten geselecteerd voor samenvoegen.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1438" /> <location filename="../novelwriter/gui/projtree.py" line="1432" />
<source>Merged</source> <source>Merged</source>
<translation>Samengevoegd</translation> <translation>Samengevoegd</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1518" /> <location filename="../novelwriter/gui/projtree.py" line="1512" />
<location filename="../novelwriter/gui/projtree.py" line="1454" /> <location filename="../novelwriter/gui/projtree.py" line="1448" />
<source>Could not write document content.</source> <source>Could not write document content.</source>
<translation>Kon documenteninhoud niet schrijven.</translation> <translation>Kon documenteninhoud niet schrijven.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1540" /> <location filename="../novelwriter/gui/projtree.py" line="1534" />
<source>Do you want to duplicate this document?</source> <source>Do you want to duplicate this document?</source>
<translation>Wilt u dit document dupliceren?</translation> <translation>Wilt u dit document dupliceren?</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1542" /> <location filename="../novelwriter/gui/projtree.py" line="1536" />
<source>Do you want to duplicate this item and all child items?</source> <source>Do you want to duplicate this item and all child items?</source>
<translation>Wilt u dit item en alle onderliggende items dupliceren?</translation> <translation>Wilt u dit item en alle onderliggende items dupliceren?</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1556" /> <location filename="../novelwriter/gui/projtree.py" line="1550" />
<source>Could not duplicate all items.</source> <source>Could not duplicate all items.</source>
<translation>Kon niet alle items dupliceren.</translation> <translation>Kon niet alle items dupliceren.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1613" /> <location filename="../novelwriter/gui/projtree.py" line="1607" />
<source>There is nowhere to add item with name '{0}'.</source> <source>There is nowhere to add item with name '{0}'.</source>
<translation>Er is geen plek om item toe te voegen met de naam '{0}'.</translation> <translation>Er is geen plek om item toe te voegen met de naam '{0}'.</translation>
</message> </message>
@@ -3474,73 +3474,73 @@
<translation>Project opgeslagen: {0}</translation> <translation>Project opgeslagen: {0}</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="427" /> <location filename="../novelwriter/core/project.py" line="428" />
<source>Backing up project ...</source> <source>Backing up project ...</source>
<translation>Reservekopie van project wordt gemaakt...</translation> <translation>Reservekopie van project wordt gemaakt...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="430" /> <location filename="../novelwriter/core/project.py" line="431" />
<source>Cannot backup project because no project name is set. Please set a Project Name in Project Settings.</source> <source>Cannot backup project because no project name is set. Please set a Project Name in Project Settings.</source>
<translation>Kan geen back-up maken van het project omdat er geen projectnaam is ingesteld. Stel een projectnaam in in Projectinstellingen.</translation> <translation>Kan geen back-up maken van het project omdat er geen projectnaam is ingesteld. Stel een projectnaam in in Projectinstellingen.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="442" /> <location filename="../novelwriter/core/project.py" line="443" />
<source>Could not create backup folder.</source> <source>Could not create backup folder.</source>
<translation>Kon de reservekopie map niet maken.</translation> <translation>Kon de reservekopie map niet maken.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="451" /> <location filename="../novelwriter/core/project.py" line="452" />
<source>Created a backup of your project of size {0}B.</source> <source>Created a backup of your project of size {0}B.</source>
<translation>Een back-up gemaakt van je project van grootte {0}B.</translation> <translation>Een back-up gemaakt van je project van grootte {0}B.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="452" /> <location filename="../novelwriter/core/project.py" line="453" />
<source>Path: {0}</source> <source>Path: {0}</source>
<translation>Pad: {0}</translation> <translation>Pad: {0}</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="455" /> <location filename="../novelwriter/core/project.py" line="456" />
<source>Could not write backup archive.</source> <source>Could not write backup archive.</source>
<translation>Kon reservekopie archief niet wegschrijven.</translation> <translation>Kon reservekopie archief niet wegschrijven.</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="458" /> <location filename="../novelwriter/core/project.py" line="459" />
<source>Project backed up to '{0}'</source> <source>Project backed up to '{0}'</source>
<translation>Project reservekopie gemaakt naar '{0}'</translation> <translation>Project reservekopie gemaakt naar '{0}'</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="472" /> <location filename="../novelwriter/core/project.py" line="473" />
<location filename="../novelwriter/core/project.py" line="468" /> <location filename="../novelwriter/core/project.py" line="469" />
<source>New</source> <source>New</source>
<translation>Nieuw</translation> <translation>Nieuw</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="469" /> <location filename="../novelwriter/core/project.py" line="470" />
<source>Note</source> <source>Note</source>
<translation>Notitie</translation> <translation>Notitie</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="470" /> <location filename="../novelwriter/core/project.py" line="471" />
<source>Draft</source> <source>Draft</source>
<translation>Concept</translation> <translation>Concept</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="471" /> <location filename="../novelwriter/core/project.py" line="472" />
<source>Finished</source> <source>Finished</source>
<translation>Voltooid</translation> <translation>Voltooid</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="473" /> <location filename="../novelwriter/core/project.py" line="474" />
<source>Minor</source> <source>Minor</source>
<translation>Klein</translation> <translation>Klein</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="474" /> <location filename="../novelwriter/core/project.py" line="475" />
<source>Major</source> <source>Major</source>
<translation>Groot</translation> <translation>Groot</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/core/project.py" line="475" /> <location filename="../novelwriter/core/project.py" line="476" />
<source>Main</source> <source>Main</source>
<translation>Hoofd</translation> <translation>Hoofd</translation>
</message> </message>
@@ -4520,142 +4520,133 @@
<context> <context>
<name>_TreeContextMenu</name> <name>_TreeContextMenu</name>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1765" /> <location filename="../novelwriter/gui/projtree.py" line="1759" />
<source>Empty Trash</source> <source>Empty Trash</source>
<translation>Prullenbak legen</translation> <translation>Prullenbak legen</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1785" /> <location filename="../novelwriter/gui/projtree.py" line="1779" />
<source>Rename</source> <source>Rename</source>
<translation>Hernoemen</translation> <translation>Hernoemen</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1817" /> <location filename="../novelwriter/gui/projtree.py" line="1815" />
<source>Open Document</source> <source>Open Document</source>
<translation>Document openen</translation> <translation>Document openen</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1821" /> <location filename="../novelwriter/gui/projtree.py" line="1819" />
<source>View Document</source> <source>View Document</source>
<translation>Bekijk document</translation> <translation>Bekijk document</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1829" /> <location filename="../novelwriter/gui/projtree.py" line="1827" />
<source>Create New ...</source> <source>Create New ...</source>
<translation>Nieuwe aanmaken...</translation> <translation>Nieuwe aanmaken...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1840" /> <location filename="../novelwriter/gui/projtree.py" line="1838" />
<source>Rename to Heading</source> <source>Rename to Heading</source>
<translation>Hernoemen naar titel</translation> <translation>Hernoemen naar titel</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1849" /> <location filename="../novelwriter/gui/projtree.py" line="1847" />
<source>Set Active to ...</source> <source>Set Active to ...</source>
<translation>Stel Actief in op...</translation> <translation>Stel Actief in op...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1850" /> <location filename="../novelwriter/gui/projtree.py" line="1853" />
<source>Active</source>
<translation>Actief</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="1852" />
<source>Inactive</source>
<translation>Inactief</translation>
</message>
<message>
<location filename="../novelwriter/gui/projtree.py" line="1855" />
<source>Toggle Active</source> <source>Toggle Active</source>
<translation>Schakel actief</translation> <translation>Schakel actief</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1862" /> <location filename="../novelwriter/gui/projtree.py" line="1860" />
<source>Set Status to ...</source> <source>Set Status to ...</source>
<translation>Status instellen op ...</translation> <translation>Status instellen op ...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1891" /> <location filename="../novelwriter/gui/projtree.py" line="1889" />
<location filename="../novelwriter/gui/projtree.py" line="1874" /> <location filename="../novelwriter/gui/projtree.py" line="1872" />
<source>Manage Labels ...</source> <source>Manage Labels ...</source>
<translation>Labels beheren ...</translation> <translation>Labels beheren ...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1879" /> <location filename="../novelwriter/gui/projtree.py" line="1877" />
<source>Set Importance to ...</source> <source>Set Importance to ...</source>
<translation>Belangrijkheid instellen op ...</translation> <translation>Belangrijkheid instellen op ...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1899" /> <location filename="../novelwriter/gui/projtree.py" line="1897" />
<source>Transform ...</source> <source>Transform ...</source>
<translation>Transformeren ...</translation> <translation>Transformeren ...</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1924" /> <location filename="../novelwriter/gui/projtree.py" line="1922" />
<location filename="../novelwriter/gui/projtree.py" line="1920" /> <location filename="../novelwriter/gui/projtree.py" line="1918" />
<location filename="../novelwriter/gui/projtree.py" line="1916" /> <location filename="../novelwriter/gui/projtree.py" line="1914" />
<location filename="../novelwriter/gui/projtree.py" line="1912" /> <location filename="../novelwriter/gui/projtree.py" line="1910" />
<source>Convert to {0}</source> <source>Convert to {0}</source>
<translation>Converteer naar {0}</translation> <translation>Converteer naar {0}</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1928" /> <location filename="../novelwriter/gui/projtree.py" line="1926" />
<source>Merge Child Items into Self</source> <source>Merge Child Items into Self</source>
<translation>Onderliggende items samenvoegen in zelf</translation> <translation>Onderliggende items samenvoegen in zelf</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1930" /> <location filename="../novelwriter/gui/projtree.py" line="1928" />
<source>Merge Child Items into New</source> <source>Merge Child Items into New</source>
<translation>Onderliggende items samenvoegen in nieuw</translation> <translation>Onderliggende items samenvoegen in nieuw</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1934" /> <location filename="../novelwriter/gui/projtree.py" line="1932" />
<source>Merge Documents in Folder</source> <source>Merge Documents in Folder</source>
<translation>Documenten in Map Samenvoegen</translation> <translation>Documenten in Map Samenvoegen</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1938" /> <location filename="../novelwriter/gui/projtree.py" line="1936" />
<source>Split Document by Headers</source> <source>Split Document by Headers</source>
<translation>Document Splitsen op Koptekst</translation> <translation>Document Splitsen op Koptekst</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1948" /> <location filename="../novelwriter/gui/projtree.py" line="1946" />
<source>Expand All</source> <source>Expand All</source>
<translation>Alles Uitklappen</translation> <translation>Alles Uitklappen</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1950" /> <location filename="../novelwriter/gui/projtree.py" line="1948" />
<source>Collapse All</source> <source>Collapse All</source>
<translation>Alles Samenvouwen</translation> <translation>Alles Samenvouwen</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1952" /> <location filename="../novelwriter/gui/projtree.py" line="1950" />
<source>Duplicate from Here</source> <source>Duplicate from Here</source>
<translation>Dupliceer vanaf hier</translation> <translation>Dupliceer vanaf hier</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1955" /> <location filename="../novelwriter/gui/projtree.py" line="1953" />
<source>Duplicate Document</source> <source>Duplicate Document</source>
<translation>Document dupliceren</translation> <translation>Document dupliceren</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1959" /> <location filename="../novelwriter/gui/projtree.py" line="1969" />
<location filename="../novelwriter/gui/projtree.py" line="1957" />
<source>Delete Permanently</source> <source>Delete Permanently</source>
<translation>Permanent Verwijderen</translation> <translation>Permanent Verwijderen</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1969" /> <location filename="../novelwriter/gui/projtree.py" line="1972" />
<location filename="../novelwriter/gui/projtree.py" line="1962" /> <location filename="../novelwriter/gui/projtree.py" line="1960" />
<source>Move to Trash</source> <source>Move to Trash</source>
<translation>Verplaatsen naar Prullenbak</translation> <translation>Verplaatsen naar Prullenbak</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1981" /> <location filename="../novelwriter/gui/projtree.py" line="1983" />
<source>Move {0} items to Trash?</source> <source>Move {0} items to Trash?</source>
<translation>{0} items naar prullenbak verplaatsen?</translation> <translation>{0} items naar prullenbak verplaatsen?</translation>
</message> </message>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="2060" /> <location filename="../novelwriter/gui/projtree.py" line="2068" />
<source>Do you want to convert the folder to a {0}? This action cannot be reversed.</source> <source>Do you want to convert the folder to a {0}? This action cannot be reversed.</source>
<translation>Wilt u de map converteren naar een {0}? Deze actie kan niet ongedaan worden gemaakt.</translation> <translation>Wilt u de map converteren naar een {0}? Deze actie kan niet ongedaan worden gemaakt.</translation>
</message> </message>
@@ -4663,7 +4654,7 @@
<context> <context>
<name>_UpdatableMenu</name> <name>_UpdatableMenu</name>
<message> <message>
<location filename="../novelwriter/gui/projtree.py" line="1681" /> <location filename="../novelwriter/gui/projtree.py" line="1675" />
<source>From Template</source> <source>From Template</source>
<translation>Van sjabloon</translation> <translation>Van sjabloon</translation>
</message> </message>
@@ -0,0 +1,26 @@
[Main]
name = Cyberpunk Night
author = Anders Lemvigh
url = https://github.com/alemvigh
license = CC BY-SA 4.0
licenseurl = https://creativecommons.org/licenses/by-sa/4.0/
[Syntax]
background = 0, 0, 0
text = 150, 150, 150
link = 77, 077, 255
headertext = 255, 255, 255
headertag = 50, 0, 180
emphasis = 0, 255, 255
straightquotes = 7, 27, 219
doublequotes = 0, 255, 0
singlequotes = 0, 140, 255
hidden = 77, 77, 100
shortcode = 255, 255, 0
keyword = 255, 100, 255
value = 255, 150, 10
spellcheckline = 242, 72, 23
errorline = 186, 218, 4
replacetag = 0, 0, 180
modifier = 144, 142, 176
optional = 180, 180, 180
+23
View File
@@ -0,0 +1,23 @@
[Main]
name = Tango
author = Veronica Berglyd Olsen (adaptation)
[Syntax]
background = 48, 48, 47
text = 238, 238, 236
link = 115, 159, 207
headertext = 115, 159, 207
headertag = 52, 101, 164
emphasis = 196, 160, 0
straightquotes = 239, 41, 41
doublequotes = 138, 226, 52
singlequotes = 252, 233, 79
hidden = 143, 143, 141
shortcode = 115, 159, 207
keyword = 239, 41, 41
value = 173, 127, 168
optional = 115, 159, 207
spellcheckline = 239, 41, 41
errorline = 138, 226, 52
replacetag = 51, 226, 226
modifier = 196, 160, 0
@@ -0,0 +1,29 @@
[Main]
name = Cyberpunk Night
description = A taste of the future 80s
author = Anders Lemvigh
url = https://github.com/alemvigh
license = CC BY-SA 4.0
licenseurl = https://creativecommons.org/licenses/by-sa/4.0/
icontheme = typicons_dark
[Palette]
window = 0, 0, 0
windowtext = 150, 150, 150
base = 0, 0, 0
alternatebase = 30, 20, 45
text = 150, 150, 150
tooltipbase = 40, 20, 70
tooltiptext = 255, 255, 255
button = 5, 0, 10
buttontext = 150, 150, 150
brighttext = 255, 255, 255
highlight = 50, 30, 80
highlightedtext = 255, 255, 255
link = 77, 77, 255
linkvisited = 50, 0, 80
[GUI]
statusnone = 50, 50, 50
statussaved = 77, 255, 77
statusunsaved = 255, 77, 77
+8 -4
View File
@@ -183,11 +183,15 @@ class NWStorage:
# 2. A full path to an nwProject.nwx file # 2. A full path to an nwProject.nwx file
if inPath.is_dir() and inPath != Path.home().resolve(): if inPath.is_dir() and inPath != Path.home().resolve():
nwxFile = inPath / nwFiles.PROJ_FILE nwxFile = inPath / nwFiles.PROJ_FILE
elif inPath.is_file() and inPath.name == nwFiles.PROJ_FILE: elif inPath.is_file():
nwxFile = inPath if inPath.name == nwFiles.PROJ_FILE:
nwxFile = inPath
else:
logger.error("Not a novelWriter project")
return NWStorageOpen.UNKOWN
else: else:
logger.error("Not a novelWriter project") logger.error("Not found: %s", inPath)
return NWStorageOpen.UNKOWN return NWStorageOpen.NOT_FOUND
if not nwxFile.exists(): if not nwxFile.exists():
# The .nwx file must exist to continue # The .nwx file must exist to continue
-1
View File
@@ -230,7 +230,6 @@ class GuiMainMenu(QMenuBar):
# Document > Import From File # Document > Import From File
self.aImportFile = self.docuMenu.addAction(self.tr("Import Text from File")) self.aImportFile = self.docuMenu.addAction(self.tr("Import Text from File"))
self.aImportFile.setShortcut("Ctrl+Shift+I")
self.aImportFile.triggered.connect(lambda: self.mainGui.importDocument()) self.aImportFile.triggered.connect(lambda: self.mainGui.importDocument())
return return
+9 -2
View File
@@ -346,7 +346,7 @@ class GuiTheme:
if themeName: if themeName:
self._themeList.append((themeKey, themeName)) self._themeList.append((themeKey, themeName))
self._themeList = sorted(self._themeList, key=lambda x: x[1]) self._themeList = sorted(self._themeList, key=_sortTheme)
return self._themeList return self._themeList
@@ -362,7 +362,7 @@ class GuiTheme:
if syntaxName: if syntaxName:
self._syntaxList.append((syntaxKey, syntaxName)) self._syntaxList.append((syntaxKey, syntaxName))
self._syntaxList = sorted(self._syntaxList, key=lambda x: x[1]) self._syntaxList = sorted(self._syntaxList, key=_sortTheme)
return self._syntaxList return self._syntaxList
@@ -729,6 +729,13 @@ class GuiIcons:
# Module Functions # Module Functions
# =============================================================================================== # # =============================================================================================== #
def _sortTheme(data: tuple[str, str]) -> str:
"""Key function for theme sorting."""
key, name = data
return f"*{name}" if key.startswith("default_") else name
def _loadInternalName(confParser: NWConfigParser, confFile: str | Path) -> str: def _loadInternalName(confParser: NWConfigParser, confFile: str | Path) -> str:
"""Open a conf file and read the 'name' setting.""" """Open a conf file and read the 'name' setting."""
try: try:
+5 -3
View File
@@ -796,7 +796,7 @@ class GuiMain(QMainWindow):
def showWelcomeDialog(self) -> None: def showWelcomeDialog(self) -> None:
"""Open the welcome dialog.""" """Open the welcome dialog."""
dialog = GuiWelcome(self) dialog = GuiWelcome(self)
dialog.openProjectRequest.connect(self._openProject) dialog.openProjectRequest.connect(self._openProjectFromWelcome)
dialog.exec_() dialog.exec_()
return return
@@ -1132,10 +1132,12 @@ class GuiMain(QMainWindow):
return return
@pyqtSlot(Path) @pyqtSlot(Path)
def _openProject(self, path: Path) -> None: def _openProjectFromWelcome(self, path: Path) -> None:
"""Handle an open project request.""" """Handle an open project request from the welcome dialog."""
qApp.processEvents() qApp.processEvents()
self.openProject(path) self.openProject(path)
if not SHARED.hasProject:
self.showWelcomeDialog()
return return
@pyqtSlot(str, nwDocMode, str, bool) @pyqtSlot(str, nwDocMode, str, bool)
-2
View File
@@ -41,8 +41,6 @@ install_requires =
include = novelwriter* include = novelwriter*
[options.entry_points] [options.entry_points]
console_script =
novelwriter-cli = novelwriter:main
gui_scripts = gui_scripts =
novelwriter = novelwriter:main novelwriter = novelwriter:main
+4 -1
View File
@@ -111,12 +111,15 @@ def testCoreStorage_InitProjectStorage(mockGUI, fncPath, mockRnd):
buildTestProject(project, fncPath) buildTestProject(project, fncPath)
# Init with the wrong file # Init with the wrong file
foo = fncPath / "foobar.txt"
foo.touch()
assert storage.initProjectStorage(fncPath / "foobar.txt") == NWStorageOpen.UNKOWN assert storage.initProjectStorage(fncPath / "foobar.txt") == NWStorageOpen.UNKOWN
foo.unlink()
storage._clearLockFile() storage._clearLockFile()
storage.clear() storage.clear()
# Init with the user's home dir # Init with the user's home dir
assert storage.initProjectStorage(Path.home()) == NWStorageOpen.UNKOWN assert storage.initProjectStorage(Path.home()) == NWStorageOpen.NOT_FOUND
storage._clearLockFile() storage._clearLockFile()
storage.clear() storage.clear()
+3 -2
View File
@@ -141,11 +141,12 @@ def testGuiTheme_Theme(qtbot, monkeypatch, nwGUI):
mp.setattr("builtins.open", causeOSError) mp.setattr("builtins.open", causeOSError)
assert mainTheme.listThemes() == [] assert mainTheme.listThemes() == []
# Load the theme info # Load the theme info, default themes first
themesList = mainTheme.listThemes() themesList = mainTheme.listThemes()
assert themesList[0] == ("default_dark", "Default Dark Theme") assert themesList[0] == ("default_dark", "Default Dark Theme")
assert themesList[1] == ("default_light", "Default Light Theme") assert themesList[1] == ("default_light", "Default Light Theme")
assert themesList[2] == ("default", "Qt Default Theme") assert themesList[2] == ("cyberpunk_night", "Cyberpunk Night")
assert themesList[3] == ("default", "Qt Default Theme")
# A second call should returned the cached list # A second call should returned the cached list
assert mainTheme.listThemes() == mainTheme._themeList assert mainTheme.listThemes() == mainTheme._themeList