From c9785bc57bb2fd7fdb91203ec0ba1922a6a34f6a Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Mon, 19 Apr 2021 20:02:58 +0200 Subject: [PATCH 1/6] Cleanup the setup instructions and rename the windows setup scripts --- README.md | 4 +- docs/source/setup_windows.rst | 4 +- setup.py | 110 ++++++++++-------- setup/README.md | 68 ++++------- ...{setup_windows.bat => windows_install.bat} | 0 ...tall_windows.bat => windows_uninstall.bat} | 0 6 files changed, 84 insertions(+), 102 deletions(-) rename setup/{setup_windows.bat => windows_install.bat} (100%) rename setup/{uninstall_windows.bat => windows_uninstall.bat} (100%) diff --git a/README.md b/README.md index 41266ae5..24b87aca 100644 --- a/README.md +++ b/README.md @@ -175,8 +175,8 @@ Windows doesn't by default come with Python installed. If you haven't installed from [python.org/downloads](https://www.python.org/downloads/). Remember to select "Add Python to PATH" during the installation. -The script `setup_windows.bat` can be used to create desktop and start menu icons for novelWriter. -The script will also install dependencies for you from PyPi. +The script `setup\windows_install.bat` can be used to create desktop and start menu icons for +novelWriter. The script will also install dependencies for you from PyPi. ## Internationalisation diff --git a/docs/source/setup_windows.rst b/docs/source/setup_windows.rst index b59b9670..44ef8b1c 100644 --- a/docs/source/setup_windows.rst +++ b/docs/source/setup_windows.rst @@ -76,7 +76,7 @@ Step 2: Dependencies and Icons **Alternative A: By Script** Open the folder where you extracted novelWriter, and double-click the file named -``setup_windows.bat``. This should open a command line window and run the setup script to install +``windows_install.bat``. This should open a command line window and run the setup script to install dependencies, and add desktop and start menu icons. .. note:: @@ -119,7 +119,7 @@ Uninstalling **Alternative A: By Script** Open the folder where you keep the novelWriter files, and double-click the file named -``uninstall_windows.bat``. This should open a command line window and run the setup script to +``windows_uninstall.bat``. This should open a command line window and run the setup script to remove the main dependency packages and remove desktop and start menu icons. .. note:: diff --git a/setup.py b/setup.py index a04e201c..25703109 100755 --- a/setup.py +++ b/setup.py @@ -367,10 +367,10 @@ def makeMinimalPackage(targetOS): if targetOS == OS_WIN: zipObj.write("novelWriter.py", "novelWriter.pyw") print("Adding File: novelWriter.pyw") - zipObj.write(os.path.join("setup", "setup_windows.bat"), "setup_windows.bat") - print("Adding File: setup_windows.bat") - zipObj.write(os.path.join("setup", "uninstall_windows.bat"), "uninstall_windows.bat") - print("Adding File: uninstall_windows.bat") + zipObj.write(os.path.join("setup", "windows_install.bat"), "windows_install.bat") + print("Adding File: windows_install.bat") + zipObj.write(os.path.join("setup", "windows_uninstall.bat"), "windows_uninstall.bat") + print("Adding File: windows_uninstall.bat") else: zipObj.write("novelWriter.py") print("Adding File: novelWriter.py") @@ -1056,51 +1056,61 @@ if __name__ == "__main__": else: targetOS = hostOS - helpMsg = ( - "\n" - "novelWriter Setup Tool\n" - "======================\n" - "\n" - "This tool provides setup and build commands for installing or distibuting novelWriter\n" - "as a package on Linux, Mac and Windows. The available options are as follows:\n" - "\n" - "Some of the commands can be targeted towards a different OS than the host OS. To target\n" - "the command, add one of '--target-linux', '--target-darwin' or '--target-win'.\n" - "\n" - "General:\n" - "\n" - " help Print the help message.\n" - " pip Install all package dependencies for novelWriter using pip.\n" - " clean Will attempt to delete the 'build' and 'dist' folders.\n" - "\n" - "Additional Builds:\n" - "\n" - " qthelp Build the help documentation for use with the Qt Assistant. Run before\n" - " install to have local help enable in the the installed version.\n" - " qtlupdate Update the translation files for internationalisation.\n" - " qtlrelease Build the language files for internationalisation.\n" - " sample Build the sample project as a zip file. Run before install to enable\n" - " creating sample projects in the in-app New Project Wizard.\n" - "\n" - "Python Packaging:\n" - "\n" - " minimal-zip Creates a minimal zip file of the core application without all the\n" - " other source files. Accepts a target OS flag.\n" - " pack-pyz Creates a pyz package in a folder with all dependencies using the\n" - " zipapp tool. On Windows, python embeddable is added to the folder.\n" - " setup-pyz Build a Windows installer from a zipapp package using Inno Setup.\n" - "\n" - "System Install:\n" - "\n" - " install Installs novelWriter to the system's Python install location. Run as \n" - " root or with sudo for system-wide install, or as user for single user \n" - " install.\n" - " xdg-install Install launcher and icons for freedesktop systems. Run as root or \n" - " with sudo for system-wide install, or as user for single user install.\n" - " Running 'xdg-uninstall' will remove the icons.\n" - " win-install Install desktop and start menu icons for Windows systems.\n" - " Running 'win-uninstall' will remove the icons.\n" - ) + helpMsg = [ + "", + "novelWriter Setup Tool", + "======================", + "", + "This tool provides setup and build commands for installing or distibuting", + "novelWriter as a package on Linux, Mac and Windows. The available options", + "are as follows:", + "", + "Some of the commands can be targeted towards a different OS than the host OS.", + "To target the command, add one of '--target-linux', '--target-darwin' or", + "'--target-win'.", + "", + "General:", + "", + " help Print the help message.", + " pip Install all package dependencies for novelWriter using pip.", + " clean Will attempt to delete the 'build' and 'dist' folders.", + "", + "Additional Builds:", + "", + " qthelp Build the help documentation for use with the Qt Assistant.", + " qtlupdate Update the translation files for internationalisation.", + " qtlrelease Build the language files for internationalisation.", + " sample Build the sample project zip file and add it to assets.", + "", + "Python Packaging:", + "", + " minimal-zip Creates a minimal zip file of the core application without", + " all the other source files. Defaults to tailor the zip file", + " for the current OS, but accepts a target OS flag to build", + " for another OS.", + " pack-pyz Creates a .pyz package in a folder with all dependencies", + " using the zipapp tool. On Windows, python embeddable is", + " added to the folder.", + " setup-pyz Build a Windows executable installer from a zipapp package", + " using Inno Setup. Must run 'pack-pyz' first.", + "", + "System Install:", + "", + " install Installs novelWriter to the system's Python install", + " location. Run as root or with sudo for system-wide install,", + " or as user for single user install.", + " xdg-install Install launcher and icons for freedesktop systems. Run as", + " root or with sudo for system-wide install, or as user for", + " single user install.", + " xdg-uninstall Remove the launcher and icons for the current system as", + " installed by the 'xdg-install' command.", + " win-install Install desktop icon, start menu icon, and registry entries", + " for file association with .nwx files for Windows systems.", + " win-uninstall Remove desktop icon, start menu icon, and registry keys,", + " for the current system. Note that it only removes icons for", + " the version number of the package the command is run from.", + "", + ] # Flags and Variables makeSetupPyz = False @@ -1112,7 +1122,7 @@ if __name__ == "__main__": if "help" in sys.argv: sys.argv.remove("help") - print(helpMsg) + print("\n".join(helpMsg)) sys.exit(0) if "version" in sys.argv: diff --git a/setup/README.md b/setup/README.md index 6c8062a8..4aaa123f 100644 --- a/setup/README.md +++ b/setup/README.md @@ -1,56 +1,28 @@ # Build and Install novelWriter -The root folder of the repository contains two scripts for setup and install: +The root folder of the repository contains a standard `setup.py` script. The `setup` folder +contains necessary files for the setup process, like icons and other files, and it also contains +additional scripts that are included in the minimal zip packages. +## Setup Script -## Script `setup.py` +The `setup.py` script in the root folder has all the necessary commands for generating packages, +installing icons, launcher, and file associations on Linux and Windows (no macOS support yet). -The `setup.py` is a standard Python setup script with a couple of additional -options: +In addition, it is a wrapper for `setuptools` and accept all commands associated with this tool. -Some of the commands can be targeted towards a different OS than the host OS. -To target the command, add one of `--target-linux`, `--target-darwin` or -`--target-win`. +To list all custom package and install options in this script, run: +``` +./setup.py help +``` +## Windows Scripts -### General +The `windows_install.bat` and `windows_uninstall.bat` are provided as convenience scripts for +Windows users who aren't used to running commands from command line. They are both located in the +`setup` folder in the source package, but in the minimal zip package for Windows, they can be +found in the root folder. -`help` – Print the help message. - -`pip` – Install all package dependencies for novelWriter using pip. - -`clean` – Will attempt to delete the `build` and `dist` folders. - -### Additional Builds - -`qthelp` – Build the help documentation for use with the Qt Assistant. Run -before install to have local help enable in the the installed version - -`qtlupdate` – Update the translation files for internationalisation. - -`qtlrelease` – Build the language files for internationalisation. - -`sample` – Build the sample project as a zip file. Run before install to enable -creating sample projects in the in-app New Project Wizard. - -### Python Packaging - -`minimal-zip` – Creates a minimal zip file of the core application without all -the other source files. - -`pack-pyz` – Creates a pyz package in a folder with all dependencies using the -zipapp tool. On Windows, python embeddable is added to the folder. - -`setup-pyz` – Build a Windows installer from a zipapp package using Inno Setup. - -### System Install - -`install` – Installs novelWriter to the system's Python install location. Run -as root or with sudo for system-wide install, or as user for single user -install. - -`xdg-install` – Install launcher and icons for freedesktop systems. Run as root -or with sudo for system-wide install, or as user for single user install. -Running `xdg-uninstall` will remove the icons. - -`win-install` – Install desktop and start menu icons for Windows systems. -Running `win-uninstall` will remove the icons. +These scripts are designed to be double-clicked by the user, but can also be run from the command +line tool. In either case, they will check if Python is properly installed, and then run the +commands to install or uninstall the core dependencies of novelWriter, and then setup or remove the +desktop icon, start menu icon and registry entries. diff --git a/setup/setup_windows.bat b/setup/windows_install.bat similarity index 100% rename from setup/setup_windows.bat rename to setup/windows_install.bat diff --git a/setup/uninstall_windows.bat b/setup/windows_uninstall.bat similarity index 100% rename from setup/uninstall_windows.bat rename to setup/windows_uninstall.bat From 4af80286d54f2cf9d2e490995943aad241ca5b6b Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Mon, 19 Apr 2021 20:15:36 +0200 Subject: [PATCH 2/6] Minor corrections to the main README --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 24b87aca..b9341774 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ The full documentation is available on [readthedocs.io](https://novelwriter.read ## Implementation -The application is written in Python 3 using Qt5 via PyQt5. It is developed on Linux, but it should +The application is written in Python 3 using Qt5 and PyQt5. It is developed on Linux, but it should in principle work fine on other operating systems as well, as long as dependencies are met. It is regularly tested on Ubuntu Linux, Windows, and macOS. @@ -142,7 +142,7 @@ space only. Dependencies can generally be installed from PyPi with: ```bash -pip install pyqt5 lxml pyenchant +pip install -r requirements.txt ``` ### Additional Steps for Linux @@ -153,7 +153,7 @@ and Debian, run: sudo apt install python3-pyqt5 python3-lxml python3-enchant ``` -If you want to set up a launcher on Linux, you can run: +If you want to set up a launcher and icons on Linux, you can run: ```bash python setup.py xdg-install ``` @@ -171,12 +171,12 @@ pip3 install --user pyobjc ### Additional Steps for Windows -Windows doesn't by default come with Python installed. If you haven't installed it already, get it +Windows does not by default come with Python installed. If you haven't installed it already, get it from [python.org/downloads](https://www.python.org/downloads/). Remember to select "Add Python to PATH" during the installation. -The script `setup\windows_install.bat` can be used to create desktop and start menu icons for -novelWriter. The script will also install dependencies for you from PyPi. +The script `windows_install.bat` in the `setup` folder can be used to create desktop and start menu +icons for novelWriter. The script will also install dependencies for you from PyPi. ## Internationalisation From 1c072e9f32c0543e661da1ad2902d6a5e63ba9f6 Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Fri, 23 Apr 2021 21:24:09 +0200 Subject: [PATCH 3/6] Move dialog source files to their own folder --- i18n/nw_en_US.ts | 555 +++++++++--------- i18n/nw_fr.ts | 555 +++++++++--------- i18n/nw_nb_NO.ts | 555 +++++++++--------- i18n/nw_pt.ts | 555 +++++++++--------- novelWriter.pro | 16 +- nw/dialogs/__init__.py | 21 + nw/{gui => dialogs}/about.py | 0 nw/{gui => dialogs}/docmerge.py | 0 nw/{gui => dialogs}/docsplit.py | 0 nw/{gui => dialogs}/itemeditor.py | 0 nw/{gui => dialogs}/preferences.py | 0 nw/{gui => dialogs}/projload.py | 0 nw/{gui => dialogs}/projsettings.py | 0 nw/{gui => dialogs}/wordlist.py | 0 nw/gui/__init__.py | 18 +- nw/guimain.py | 13 +- .../test_dlg_about.py} | 6 +- .../test_dlg_itemeditor.py} | 7 +- .../test_dlg_mergesplit.py} | 6 +- .../test_dlg_preferences.py} | 6 +- .../test_dlg_projload.py} | 6 +- .../test_dlg_projsettings.py} | 6 +- .../test_dlg_wordlist.py} | 6 +- tests/test_gui/test_gui_doceditor.py | 2 +- 24 files changed, 1169 insertions(+), 1164 deletions(-) create mode 100644 nw/dialogs/__init__.py rename nw/{gui => dialogs}/about.py (100%) rename nw/{gui => dialogs}/docmerge.py (100%) rename nw/{gui => dialogs}/docsplit.py (100%) rename nw/{gui => dialogs}/itemeditor.py (100%) rename nw/{gui => dialogs}/preferences.py (100%) rename nw/{gui => dialogs}/projload.py (100%) rename nw/{gui => dialogs}/projsettings.py (100%) rename nw/{gui => dialogs}/wordlist.py (100%) rename tests/{test_gui/test_gui_about.py => test_dialogs/test_dlg_about.py} (94%) rename tests/{test_gui/test_gui_itemeditor.py => test_dialogs/test_dlg_itemeditor.py} (95%) rename tests/{test_gui/test_gui_mergesplit.py => test_dialogs/test_dlg_mergesplit.py} (97%) rename tests/{test_gui/test_gui_preferences.py => test_dialogs/test_dlg_preferences.py} (98%) rename tests/{test_gui/test_gui_projload.py => test_dialogs/test_dlg_projload.py} (96%) rename tests/{test_gui/test_gui_projsettings.py => test_dialogs/test_dlg_projsettings.py} (98%) rename tests/{test_gui/test_gui_wordlist.py => test_dialogs/test_dlg_wordlist.py} (96%) diff --git a/i18n/nw_en_US.ts b/i18n/nw_en_US.ts index d1765466..76b206ec 100644 --- a/i18n/nw_en_US.ts +++ b/i18n/nw_en_US.ts @@ -1,6 +1,5 @@ - - + Common @@ -335,97 +334,97 @@ GuiAbout - + About novelWriter - + About - + Release - + Website: {0} - + Credits - + novelWriter is a markdown-like text editor designed for organising and writing novels. It is written in Python 3 with a Qt5 GUI, using PyQt5. - + novelWriter is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - + Theme: {0} - + Icons: {0} - + Syntax: {0} - + Licence License - + novelWriter is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + See the Licence tab for the full licence text, or visit the GNU website at {0} for more details. See the License tab for the full license text, or visit the GNU website at {0} for more details. - + Translations - + Author - + Credit - + Concept - + i18n - + Developer @@ -1031,37 +1030,37 @@ GuiDocMerge - + Merge Documents - + Documents to Merge - + Drag and drop items to change the order. - + No source documents found. Nothing to do. - + No source document selected. Nothing to do. - + Could not parse source document. - + Element selected in the project tree must be a folder. @@ -1069,72 +1068,72 @@ GuiDocSplit - + Split Document - + Document Headers - + Select the maximum level to split into files. - + Split on Header Level 1 (Title) - + Split up to Header Level 2 (Chapter) - + Split up to Header Level 3 (Scene) - + Split up to Header Level 4 (Section) - + No source document selected. Nothing to do. - + Could not parse source document. - + No headers found. Nothing to do. - + Cannot add new folder for the document split. Maximum folder depth has been reached. Please move the file to another level in the project tree. - + The document will be split into {0} file(s) in a new folder. The original document will remain intact. - + Continue with the splitting process? - + Element selected in the project tree must be a file. @@ -1287,27 +1286,27 @@ GuiItemEditor - + Item Settings - + Include when building project - + Label - + Status - + Layout @@ -1315,207 +1314,207 @@ GuiMain - + Project - + Novel - + Project Details - + Writing Statistics - + Project Settings - + Editor - + Outline - + novelWriter is ready ... - + Cannot create new project when another project is open. - + A project already exists in that location. Please choose another folder. - + New project created ... - + Close Project - + Close the current project? - + Changes are saved automatically. - + Backup Project - + Backup the current project? - + The project was locked by the computer '{0}' ({1} {2}), last active on {3}. - + Project Locked - + The project is already open by another instance of novelWriter, and is therefore locked. Override lock and continue anyway? - + Note: If the program or the computer previously crashed, the lock can safely be overridden. If, however, another instance of novelWriter has the project open, overriding the lock may corrupt the project, and is not recommended. - + The project index is outdated or broken. Rebuilding index. - + Text files ({0}) - + Markdown files ({0}) - + novelWriter files ({0}) - + All files ({0}) - + Import File - + Could not read file. The file must be an existing text file. - + Please open a document to import the text file into. - + Import Document - + Importing the file will overwrite the current content of the document. Do you want to proceed? - + Indexing: '{0}' - + Unknown item - + Indexing completed in {0} ms - + The project index has been successfully rebuilt. - + Information - + Warning - + Error - + This is a bug! - + Internal Error - + Exit - + Do you want to exit novelWriter? @@ -2763,47 +2762,47 @@ GuiPreferences - + Preferences - + General - + Projects - + Documents - + Editor - + Highlighting - + Automation - + Some changes will not be applied until novelWriter has been restarted. - + Quotes @@ -2811,107 +2810,107 @@ GuiPreferencesAutomation - + Automatic Features - + Auto-select word under cursor - + Apply formatting to word under cursor if no selection is made. - + Auto-replace text as you type - + Allow the editor to replace symbols as you type. - + Replace as You Type - + Auto-replace single quotes - + Try to guess which is an opening or a closing single quote. - + Auto-replace double quotes - + Try to guess which is an opening or a closing double quote. - + Auto-replace dashes - + Double and triple hyphens become short and long dashes. - + Auto-replace dots - + Three consecutive dots become ellipsis. - + Automatic Padding - + Insert non-breaking space before - + Insert non-breaking space after - + Use thin space instead - + Automatically add space before any of these symbols. - + Automatically add space after any of these symbols. - + Inserts a thin space instead of a regular space. @@ -2919,107 +2918,107 @@ GuiPreferencesDocuments - + Text Style - + Font family - + Font for the document editor and viewer. - + Font size - + Font size for the document editor and viewer. - + pt - + Text Flow - + Maximum text width in "Normal Mode" - + Horizontal margins are scaled automatically. - + px - + Maximum text width in "Focus Mode" - + Disable maximum text width in "Normal Mode" - + Text width is defined by the margins only. - + Hide document footer in "Focus Mode" - + Hide the information bar at the bottom of the document. - + Justify the text margins in editor and viewer - + Lay out text with straight edges in the editor and viewer. - + Text margin - + If maximum width is set, this becomes the minimum margin. - + Tab width - + The width of a tab key press in the editor and viewer. @@ -3027,127 +3026,127 @@ GuiPreferencesEditor - + Spell Checking - + Internal - + Spell check provider - + Note that the internal spell check tool is quite slow. - + Spell check language - + Available languages are determined by your system. - + Big document limit - + Full spell checking is disabled above this limit. - + kB - + Word Count - + Word count interval - + How often the word count is updated. - + seconds - + Writing Guides - + Show tabs and spaces - + Add symbols to indicate tabs and spaces in the editor. - + Show line endings - + Add a symbol to indicate line endings in the editor. - + Scroll Behaviour Scroll Behavior - + Scroll past end of the document - + Also improves trypewriter scrolling for short documents. - + Typewriter style scrolling when you type - + Try to keep the cursor at a fixed vertical position. - + Minimum position for Typewriter scrolling - + Percentage of the editor height from the top. @@ -3155,82 +3154,82 @@ GuiPreferencesGeneral - + Look and Feel - + Main GUI language - + Changing this requires restarting novelWriter. - + Main GUI theme - + Main icon theme - + Prefer icons for dark backgrounds - + May improve the look of icons on dark themes. - + Font family - + Font size - + pt - + GUI Settings - + Show full path in document header - + Add the parent folder names to the header. - + Hide vertical scroll bars in main windows - + Scrolling available with mouse wheel and keys only. - + Hide horizontal scroll bars in main windows @@ -3238,107 +3237,107 @@ GuiPreferencesProjects - + Automatic Save - + Save document interval - + How often the open document is automatically saved. - + seconds - + Save project interval - + How often the open project is automatically saved. - + Project Backup - + Browse - + Backup storage location - + Path: {0} - + Run backup when the project is closed - + Can be overridden for individual projects in Project Settings. - + Ask before running backup - + If off, backups will run in the background. - + Session Timer - + Pause the session timer when not writing - + Also pauses when the application window does not have focus. - + Editor inactive time before pausing timer - + User activity includes typing and changing the content. - + minutes - + Backup Directory @@ -3346,47 +3345,47 @@ GuiPreferencesQuotes - + Quotation Style - + Single quote open style - + The symbol to use for a leading single quote. - + Single quote close style - + The symbol to use for a trailing single quote. - + Double quote open style - + The symbol to use for a leading double quote. - + Double quote close style - + The symbol to use for a trailing double quote. @@ -3394,67 +3393,67 @@ GuiPreferencesSyntax - + Highlighting Theme - + Highlighting theme - + Colour theme to apply to the editor and viewer. Color theme to apply to the editor and viewer. - + Quotes & Dialogue - + Highlight text wrapped in quotes - + Applies to single, double and straight quotes. - + Allow open-ended single quotes - + Highlight single-quoted line with no closing quote. - + Allow open-ended double quotes - + Highlight double-quoted line with no closing quote. - + Text Emphasis - + Add highlight colour to emphasised text Add highlight color to emphasised text - + Applies to emphasis (italic) and strong (bold). @@ -3596,57 +3595,57 @@ GuiProjectEditMain - + Project Settings - + Working title - + Should be set only once. - + Novel title - + Change whenever you want! - + Author(s) - + One name per line. - + Default - + Spell check language - + Overrides main preferences. - + No backup on close @@ -3654,37 +3653,37 @@ GuiProjectEditReplace - + Keyword - + Replace With - + Save entry - + Add new entry - + Delete selected entry - + Text Replace List for Preview and Export - + Select item to edit @@ -3692,77 +3691,77 @@ GuiProjectEditStatus - + Save - + Colour Color - + Novel File Status Levels - + Note File Importance Levels - + Select Colour Select Color - + New Item - + Label - + Usage - + Add new entry - + Delete selected entry - + Select item to edit - + Cannot delete a status item that is in use. - + Not in use - + Used once - + Used by {0} items @@ -3770,62 +3769,62 @@ GuiProjectLoad - + Open Project - + Working Title - + Words - + Last Opened - + Recently Opened Projects - + Path - + New - + Remove - + novelWriter Project File ({0}) - + All files ({0}) - + Remove Entry - + Remove '{0}' from the recent projects list? The project files will not be deleted. @@ -3833,27 +3832,27 @@ GuiProjectSettings - + Project Settings - + Settings - + Status - + Importance - + Auto-Replace @@ -4065,27 +4064,27 @@ GuiWordList - + Project Word List - + Add new entry - + Delete selected entry - + Cannot add a blank word. - + The word '{0}' is already in the word list. diff --git a/i18n/nw_fr.ts b/i18n/nw_fr.ts index 68931c1b..592f93ba 100644 --- a/i18n/nw_fr.ts +++ b/i18n/nw_fr.ts @@ -1,6 +1,5 @@ - - + Common @@ -335,97 +334,97 @@ GuiAbout - + About novelWriter À propos de novelWriter - + About À propos - + Release Version - + Licence Licence - + Website: {0} Site Web: {0} - + Credits Crédits - + novelWriter is a markdown-like text editor designed for organising and writing novels. It is written in Python 3 with a Qt5 GUI, using PyQt5. novelWriter est un éditeur markdown pour organiser et écrire des romans. Il est écrit en Python 3 avec un interface utilisateur Qt5, basé sur PyQt5. - + novelWriter is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. novelWriter est un logiciel libre : vous pouvez le redistribuer et/ou le modifier selon les termes de la licence publique générale GNU telle que publiée par la Free Software Foundation, dans la version 3 de cette licence ou (à votre choix) dans une version plus récente. - + novelWriter is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. novelWriter est diffusé dans l'espoir qu'il sera utile, mais SANS GARANTIE D'AUCUNE SORTE, en particulier concernant sa QUALITÉ MARCHANDE ou son APTITUDE À UN USAGE SPÉCIFIQUE. - + See the Licence tab for the full licence text, or visit the GNU website at {0} for more details. Ouvrez l'onglet Licence pour voir le texte complet de la licence (en anglais), ou visitez le site de GNU à l'adresse {0} pour en lire une traduction ou pour obtenir plus de détails. - + Theme: {0} Thème: {0} - + Icons: {0} Icônes: {0} - + Syntax: {0} Syntaxe: {0} - + Translations Traducteurs - + Author Auteur - + Credit Crédits - + Concept Concept - + i18n Internationalisation - + Developer Développeur @@ -1031,37 +1030,37 @@ GuiDocMerge - + Merge Documents Fusionner des documents - + Documents to Merge Documents à fusionner - + Drag and drop items to change the order. Tirer et déposer les éléments pour en changer l'ordre. - + No source documents found. Nothing to do. Pas de document source trouvé. Aucune action. - + No source document selected. Nothing to do. Pas de document source sélectionné. Aucune action. - + Could not parse source document. Impossible d'interpréter le nom du document source. - + Element selected in the project tree must be a folder. L'élement selectionné dans l'arborescence doit être un dossier. @@ -1069,72 +1068,72 @@ GuiDocSplit - + Split Document Découper un document - + Document Headers En-têtes de documents - + Select the maximum level to split into files. Sélectionner le niveau maximum à découper en fichiers. - + Split on Header Level 1 (Title) Découpage aux en-têtes de niveau 1 (Titre) - + Split up to Header Level 2 (Chapter) Découpage aux en-têtes de niveau 2 (Chapitre) - + Split up to Header Level 3 (Scene) Découpage aux en-têtes de niveau 3 (Scène) - + Split up to Header Level 4 (Section) Découpage aux en-têtes de niveau 4 (Section) - + No source document selected. Nothing to do. Pas de document source sélectionné. Aucune action. - + Could not parse source document. Impossible d'interpréter le nom du document source. - + No headers found. Nothing to do. Pas d'en-tête trouvé. Aucune action. - + Cannot add new folder for the document split. Maximum folder depth has been reached. Please move the file to another level in the project tree. Impossible d'ajouter un nouveau dossier lors du découpage. Le nombre maximum de dossiers a été atteint. Veuillez placer ce fichier à un autre niveau dans l'arborescence. - + The document will be split into {0} file(s) in a new folder. The original document will remain intact. Ce document va être découpé en {0} fichier(s) dans un nouveau dossier. Le document d'origine restera intact. - + Continue with the splitting process? Continuer le découpage ? - + Element selected in the project tree must be a file. L'élément sélectionné dans l'arborescence doit être un fichier. @@ -1287,27 +1286,27 @@ GuiItemEditor - + Item Settings Caractéristiques - + Include when building project À inclure lors de la construction du projet - + Label Label - + Status État - + Layout Format @@ -1315,207 +1314,207 @@ GuiMain - + Project Projet - + Novel Roman - + Project Details Détails du projet - + Writing Statistics Statistiques d'écriture - + Project Settings Réglages du projet - + Editor Éditeur - + Outline Vue d'ensemble - + novelWriter is ready ... novelWriter est prêt ... - + Cannot create new project when another project is open. Il est impossible de créer un projet tant qu'un autre projet est ouvert. - + A project already exists in that location. Please choose another folder. Un projet existe déjà à cet emplacement. Veuillez choisir un autre répertoire. - + New project created ... Le nouveau projet a été créé ... - + Close Project Fermer le projet - + Close the current project? Fermer le projet en cours ? - + Changes are saved automatically. Les changements sont enregistrés automatiquement. - + Backup Project Sauvegarder du projet - + Backup the current project? Faut-il sauvegarder le projet en cours ? - + The project was locked by the computer '{0}' ({1} {2}), last active on {3}. Le projet a été verrouillé par l'ordinateur '{0}' ({1} {2}), dernière activité à {3}. - + Project Locked Projet verrouillé - + The project is already open by another instance of novelWriter, and is therefore locked. Override lock and continue anyway? Ce projet est verrouillé car il est déjà ouvert par une autre instance de novelWriter. Faut-il contourner le verrou et continuer malgré tout ? - + Note: If the program or the computer previously crashed, the lock can safely be overridden. If, however, another instance of novelWriter has the project open, overriding the lock may corrupt the project, and is not recommended. Note : Si le programme ou l'ordinateur s'est bloqué auparavant, le verrou peut être contourné sans problème. Si par contre le projet est actuellement ouvert par une autre instance de novelWriter, il est déconseillé de contourner le verrou car cela peut corrompre les données du projet. - + The project index is outdated or broken. Rebuilding index. L'index du projet est périmé ou endommagé. Reconstruction de l'index en cours. - + Text files ({0}) Fichiers de texte ({0}) - + Markdown files ({0}) Fichiers Markdown ({0}) - + novelWriter files ({0}) fichiers novelWriter ({0}) - + All files ({0}) Tous les filchiers ({0}) - + Import File Importer un fichier - + Could not read file. The file must be an existing text file. Lecture du fichier impossible. Il faut un fichier texte existant. - + Please open a document to import the text file into. Veuillez ouvrir un document dans lequel sera importé le texte. - + Import Document Importer un document - + Importing the file will overwrite the current content of the document. Do you want to proceed? Le contenu du fichier importé va remplacer le contenu actuel du document. Faut-il continuer ? - + Indexing: '{0}' Indexation d e: '{0}' - + Unknown item Item inconnu - + Indexing completed in {0} ms Indexation effectuée en {0} ms - + The project index has been successfully rebuilt. L'index du projet a été correctement reconstruit. - + Information Information - + Warning Avertissement - + Error Erreur - + This is a bug! Ceci est un bug ! - + Internal Error Erreur interne - + Exit Sortir - + Do you want to exit novelWriter? Voulez-vous sortir de novelWriter ? @@ -2763,47 +2762,47 @@ GuiPreferences - + Preferences Préférences - + General Général - + Projects Projets - + Documents Documents - + Editor Éditeur - + Highlighting Mise en évidence - + Automation Automation - + Some changes will not be applied until novelWriter has been restarted. Certains changements ne seront effectifs qu'après un redémarrage de novelWriter. - + Quotes Guillemets @@ -2811,107 +2810,107 @@ GuiPreferencesAutomation - + Automatic Features Automatismes - + Auto-select word under cursor Auto-sélection du mot sous le curseur - + Apply formatting to word under cursor if no selection is made. En l'absence de texte sélectionné la mise en forme s'applique au mot sous le curseur. - + Auto-replace text as you type Auto-remplacement par la frappe - + Allow the editor to replace symbols as you type. Permet à l'éditeur de remplacer les symboles au fur et à mesure de la frappe. - + Replace as You Type Remplacement par la frappe - + Auto-replace single quotes Auto-remplacement des guillemets simples - + Try to guess which is an opening or a closing single quote. Tenter de deviner si un guillemet simple est ouvrant ou fermant. - + Auto-replace double quotes Auto-remplacement des guillemets doubles - + Try to guess which is an opening or a closing double quote. Tenter de deviner si un guillemet double est ouvrant ou fermant. - + Auto-replace dashes Auto-remplacemet des tirets - + Double and triple hyphens become short and long dashes. Deux ou trois tirets successifs deviennent des tirets moyens (semi-cadratin) ou longs (cadratins). - + Auto-replace dots Auto-remplacement des points - + Three consecutive dots become ellipsis. Trois points consécutifs deviennent des points de suspension. - + Automatic Padding Insertion automatique - + Insert non-breaking space before Espace insécable avant - + Insert non-breaking space after Espace insécable après - + Use thin space instead Utiliser des espaces fines - + Automatically add space before any of these symbols. Ajouter lors de la frappe une espace avant chacun de ces caractères. - + Automatically add space after any of these symbols. Ajouter lors de la frappe une espace après chacun de ces caractères. - + Inserts a thin space instead of a regular space. Insérer une espace fine au lieu d'une espace-mot. @@ -2919,107 +2918,107 @@ GuiPreferencesDocuments - + Text Style Style du texte - + Font family Police de caractères - + Font for the document editor and viewer. Police pour l'éditeur et l'afficheur de document. - + Font size Taille de police - + Font size for the document editor and viewer. Taille de la police pour l'éditeur et l'afficheur de document. - + pt pt - + Text Flow Déroulement du texte - + Maximum text width in "Normal Mode" Largeur maximale du texte en mode "normal" - + Horizontal margins are scaled automatically. Les marges horizontales sont ajustées automatiquement. - + px px - + Maximum text width in "Focus Mode" Largeur maximale du texte en mode "sans distraction" - + Disable maximum text width in "Normal Mode" Oublier la largeur maximale en mode "normal" - + Text width is defined by the margins only. La largeur du texte est définie uniquement par les marges. - + Hide document footer in "Focus Mode" Masquer le bas de page en mode "sans distraction" - + Hide the information bar at the bottom of the document. Ne pas afficher la barre d'informations sous le document. - + Justify the text margins in editor and viewer Justifier aux marges dans l'éditeur et l'afficheur - + Lay out text with straight edges in the editor and viewer. Aligner le texte avec des bords droits aux marges droite et gauche dans l'éditeur et l'afficheur. - + Text margin Marge de texte - + If maximum width is set, this becomes the minimum margin. Si une largeur maximale est définie, ceci devient la marge minimale. - + Tab width Largeur des tabulations - + The width of a tab key press in the editor and viewer. La largeur résultant d'un appui sur la touche de tabulation dans l'éditeur et l'afficheur. @@ -3027,127 +3026,127 @@ GuiPreferencesEditor - + Spell Checking Vérification orthographique - + Internal Interne - + Spell check provider Vérificateur - + Note that the internal spell check tool is quite slow. Veuillez noter que la vérification interne est plutôt lente. - + Spell check language Langue à vérifier - + Available languages are determined by your system. Les langues disponibles dépendent de votre système. - + Big document limit Taille maximale de document - + Full spell checking is disabled above this limit. La vérification compléte est désactivée au dessus de cette limite. - + kB ko - + Word Count Compteur de mots - + Word count interval Intervalle de comptage - + How often the word count is updated. Indique à quelle fréquence le compteur est mis à jour. - + seconds secondes - + Writing Guides Aides à l'écriture - + Show tabs and spaces Montrer les tabulations et les espaces - + Add symbols to indicate tabs and spaces in the editor. Dans l'éditeur un symbole montre l'emplacement des tabulations et des espaces. - + Show line endings Montrer les fins de lignes - + Add a symbol to indicate line endings in the editor. Dans l'éditeur un symbole montre l'emplacement des fins de lignes. - + Scroll Behaviour Défilement du texte - + Scroll past end of the document Le défilement dépasse la fin du document - + Also improves trypewriter scrolling for short documents. Améliore également le défilement machine à écrire pour les documents courts. - + Typewriter style scrolling when you type Défilement de machine à écrire - + Try to keep the cursor at a fixed vertical position. L'éditeur essaye de conserver le curseur à la même position verticale. - + Minimum position for Typewriter scrolling Position minimale en mode machine à écrire - + Percentage of the editor height from the top. En pourcentage de la hauteur de la fenêtre depuis le haut. @@ -3155,82 +3154,82 @@ GuiPreferencesGeneral - + Look and Feel Apparence - + Main GUI language Langue de l'interface - + Changing this requires restarting novelWriter. Un changement ne sera pris en compte qu'après le redémarrage de novelWriter. - + Main GUI theme Thème de l'interface - + Main icon theme Thème des icônes - + Prefer icons for dark backgrounds Préférer les icônes pour fonds sombres - + May improve the look of icons on dark themes. Améliore l'apparence des icônes dans les thèmes sombres. - + Font family Police de caractères - + Font size Taille de police - + pt pt - + GUI Settings Paramètres de l'interface - + Show full path in document header Montrer le chemin complet dans l'en-tête du document - + Add the parent folder names to the header. Ajouter les noms des dossiers parents dans l'en-tête. - + Hide vertical scroll bars in main windows Masquer les barres de défilement verticales dans les fenêtres principales - + Scrolling available with mouse wheel and keys only. Le défilement ne pourra se faire que par la molette de la souris et les touches du clavier. - + Hide horizontal scroll bars in main windows Masquer les barres de défilement horizontales dans les fenêtres principales @@ -3238,107 +3237,107 @@ GuiPreferencesProjects - + Automatic Save Enregistrement automatique - + Save document interval Intervalle d'enregistrement - + How often the open document is automatically saved. Indique à quelle fréquence le document ouvert est automatiquement enregistré. - + seconds secondes - + Save project interval Intervalle d'enregistrement du projet - + How often the open project is automatically saved. Indique à quelle fréquence le projet ouvert est automatiquement enregistré. - + Project Backup Sauvegarde du projet - + Browse Parcourir - + Backup storage location Emplacement de sauvegarde du projet - + Path: {0} Chemin : {0} - + Run backup when the project is closed Sauvegarder à la fermeture du projet - + Can be overridden for individual projects in Project Settings. Peut être invalidé pour des projets spécifiques dans leurs paramètres. - + Ask before running backup Demander avant de sauvegarder - + If off, backups will run in the background. Si désactivé, les sauvegardes seront effectuées en arrière-plan. - + Session Timer Chronomètre de session - + Pause the session timer when not writing Arrêter le chronomètre quand on n'écrit pas - + Also pauses when the application window does not have focus. Arrêter également lorsque la fenêtre de l'application n'a pas le focus. - + Editor inactive time before pausing timer Durée d'inactivité de l'éditeur avant la mise en pause du chronomètre - + User activity includes typing and changing the content. L'activité de l'utilisateur inclut la frappe et la modification du contenu. - + minutes minutes - + Backup Directory Répertoire de sauvegarde @@ -3346,47 +3345,47 @@ GuiPreferencesQuotes - + Quotation Style Style de guillemets - + Single quote open style Guillemets simples ouvrants - + The symbol to use for a leading single quote. Symbole à utiliser pour un guillemet simple ouvrant. - + Single quote close style Guillemets simples fermants - + The symbol to use for a trailing single quote. Symbole à utiliser pour un guillemet simple fermant. - + Double quote open style Guillemets doubles ouvrants - + The symbol to use for a leading double quote. Symbole à utiliser pour un guillemet double ouvrant. - + Double quote close style Guillemets doubles fermants - + The symbol to use for a trailing double quote. Symbole à utiliser pour un guillemet double fermant. @@ -3394,67 +3393,67 @@ GuiPreferencesSyntax - + Highlighting Theme Thème de mise en évidence - + Highlighting theme Thème de mise en évidence - + Colour theme to apply to the editor and viewer. Thème de couleurs à utiliser dans l'éditeur et l'afficheur. - + Quotes & Dialogue Dialogues et citations - + Highlight text wrapped in quotes Mettre en évidence le texte situé entre des guillemets - + Applies to single, double and straight quotes. S'applique aux guillemets simples, doubles, et droits. - + Allow open-ended single quotes Autoriser les guillemets simples non fermés - + Highlight single-quoted line with no closing quote. Mettre en évidence les lignes avec guillemet simple ouvrant et non fermées. - + Allow open-ended double quotes Autoriser les guillemets doubles non fermés - + Highlight double-quoted line with no closing quote. Mettre en évidence les lignes avec guillemet double ouvrant et non fermées. - + Text Emphasis Texte appuyé - + Add highlight colour to emphasised text Mettre en évidence le texte appuyé - + Applies to emphasis (italic) and strong (bold). S'applique au texte en caractères italiques ou gras. @@ -3596,57 +3595,57 @@ GuiProjectEditMain - + Project Settings Paramètres du projet - + Working title Titre de travail - + Should be set only once. Evitez de le changer ensuite. - + Novel title Titre du roman - + Change whenever you want! Modifiez le à volonté ! - + Author(s) Auteur(s) - + One name per line. Un nom par ligne. - + Default Défauts - + Spell check language Langue du texte - + Overrides main preferences. Prioritaire sur les réglages de nW. - + No backup on close Ne pas sauvegarder en fermant @@ -3654,37 +3653,37 @@ GuiProjectEditReplace - + Keyword Mot-clé - + Replace With Remplacer par - + Save entry Enregistrer cette entrée - + Add new entry Ajouter une nouvelle entrée - + Delete selected entry Supprimer l'entrée sélectionnée - + Text Replace List for Preview and Export Remplacements dans le texte pour les aperçus et exportations - + Select item to edit Choisir l'élément à éditer @@ -3692,77 +3691,77 @@ GuiProjectEditStatus - + Save Enregistrer - + Colour Couleur - + Novel File Status Levels États des fichiers du roman - + Note File Importance Levels Importance des fichiers de notes - + Select Colour Choisir la couleur - + New Item Nouvel item - + Label Label - + Usage Utilisation - + Add new entry Ajouter une nouvelle entrée - + Delete selected entry Supprimer l'entrée sélectionnée - + Select item to edit Choisir l'élément à éditer - + Cannot delete a status item that is in use. On ne peut pas retirer un élément tant qu'il est utilisé. - + Not in use Inutilisé - + Used once Utilisé une fois - + Used by {0} items Utilisé {0} fois @@ -3770,62 +3769,62 @@ GuiProjectLoad - + Open Project Ouvrir un projet - + Working Title Titre de travail - + Words Mots - + Last Opened Dernier ouvert - + Recently Opened Projects Projets récemment ouverts - + Path Chemin - + New Nouveau - + Remove Retirer - + novelWriter Project File ({0}) Fichier projet novelWriter ({0}) - + All files ({0}) Tous les fichiers - + Remove Entry Retirer ce projet - + Remove '{0}' from the recent projects list? The project files will not be deleted. Retirer '{0}' de la liste des projets récents ? Le fichier projet ne sera pas effacé. @@ -3833,27 +3832,27 @@ GuiProjectSettings - + Project Settings Paramètres du projet - + Settings Général - + Status État - + Importance Importance - + Auto-Replace Auto-remplacement @@ -4065,27 +4064,27 @@ GuiWordList - + Project Word List Lexique du projet - + Add new entry Ajouter une nouvelle entrée - + Delete selected entry Supprimer l'entrée sélectionnée - + Cannot add a blank word. Il est impossible d'ajouter un mot vide. - + The word '{0}' is already in the word list. Le mot '{0}' est déjà dans le lexique. diff --git a/i18n/nw_nb_NO.ts b/i18n/nw_nb_NO.ts index 41b124c1..931a3671 100644 --- a/i18n/nw_nb_NO.ts +++ b/i18n/nw_nb_NO.ts @@ -1,6 +1,5 @@ - - + Common @@ -335,97 +334,97 @@ GuiAbout - + About novelWriter Om novelWriter - + About Om - + Release Utgivelse - + Licence Lisens - + Website: {0} Nettside: {0} - + Credits Krediteringer - + novelWriter is a markdown-like text editor designed for organising and writing novels. It is written in Python 3 with a Qt5 GUI, using PyQt5. novelWriter er en markdown-liknende teksteditor laget for å kunne organisere og skrive romaner og noveller. Programmet er skrevet i Python 3 med et brukergrensesnitt i Qt 5 via PyQt5. - + novelWriter is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. novelWriter er gratis programvare: du kan videredistribuere det og/eller modifisere det under vilkårene i GNU General Public License som utgitt av Free Software Foundation, enten versjon 3 av Lisensen, eller (etter eget valg) enhver senere versjon. - + novelWriter is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. novelWriter er distribuert i håp om at det vil være nyttig, men UTEN NOEN GARANTI; uten selv en underforstått garanti vedrørende SALGBARHET eller EGNETHET TIL ET BESTEMT FORMÅL. Se GNU General Public Licence for flere detaljer. - + See the Licence tab for the full licence text, or visit the GNU website at {0} for more details. Se lisens-fanen for fulltekst-versjonen av lisensen (på engelsk), eller besøk GNU sin nettside på {0} for mer informasjon. - + Theme: {0} Tema: {0} - + Icons: {0} Ikoner: {0} - + Syntax: {0} Syntaks: {0} - + Translations Oversettelser - + Author Ansvarlig - + Credit Kreditert - + Concept Konsept - + i18n - + Developer Utvikler @@ -1031,37 +1030,37 @@ GuiDocMerge - + Merge Documents Slå sammen dokumenter - + Documents to Merge Dokumenter som skal slås sammen - + Drag and drop items to change the order. Dra og slipp dokumenter for å endre rekkefølge. - + No source documents found. Nothing to do. Ingen kilde-dokument funnet. Det er ingenting å gjøre. - + No source document selected. Nothing to do. Ingen kilde-dokument er valgt. Det er ingenting å gjøre. - + Could not parse source document. Klarte ikke å lese kilde-dokumentet. - + Element selected in the project tree must be a folder. Elementet som er valgt i prosjekttreet må være en mappe. @@ -1069,72 +1068,72 @@ GuiDocSplit - + Split Document Del opp dokument - + Document Headers Dokumentets overskrifter - + Select the maximum level to split into files. Velg hvilket nivå av overskrifter å dele opp til. - + Split on Header Level 1 (Title) Del på overskrifter på nivå 1 (titler) - + Split up to Header Level 2 (Chapter) Del på overskrifter opp til nivå 2 (kapitler) - + Split up to Header Level 3 (Scene) Del på overskrifter opp til nivå 3 (scener) - + Split up to Header Level 4 (Section) Del på overskrifter opp til nivå 4 (seksjoner) - + No source document selected. Nothing to do. Ingen kilde-dokument er valgt. Det er ingenting å gjøre. - + Could not parse source document. Klarte ikke å lese kilde-dokumentet. - + No headers found. Nothing to do. Ingen overskrifter ble funnet i dokumentet. Det er ikke noe å gjøre. - + Cannot add new folder for the document split. Maximum folder depth has been reached. Please move the file to another level in the project tree. Kan ikke legge til ny mappe for å dele opp dokumentet. Dokumentet har allerede maksimal dybde i prosjekttreet. Flytt dokumentet til et annet nivå først. - + The document will be split into {0} file(s) in a new folder. The original document will remain intact. Dokumentet vil nå bli delt opp i {0} nye filer i en ny mappe. Det originale dokumentet vil ikke bli endret eller fjernet. - + Continue with the splitting process? Fortsette med oppdelingen? - + Element selected in the project tree must be a file. Elementet som er valgt i prosjekttreet må være et dokument. @@ -1287,27 +1286,27 @@ GuiItemEditor - + Item Settings Enhetsinstillinger - + Include when building project Ta med ved eksport - + Label Navn - + Status Status - + Layout Format @@ -1315,207 +1314,207 @@ GuiMain - + Project Prosjekt - + Novel Roman - + Project Details Prosjektdetaljer - + Writing Statistics Statistikk - + Project Settings Prosjektinnstillinger - + Editor Editor - + Outline Oversikt - + Cannot create new project when another project is open. Kan ikke lage et nytt prosjekt mens et annet prosjekt er åpent. - + A project already exists in that location. Please choose another folder. Et prosjekt finnes allerede i den mappen. Vennligst velg et annet sted å lagre prosjektet. - + New project created ... Et nytt prosjekt har blitt opprettet ... - + Close Project Lukk prosjektet - + Close the current project? Ønsker du å lukke dette prosjektet? - + Changes are saved automatically. Endringer lagres automatisk. - + Backup Project Sikkerhetskopiering - + Backup the current project? Ønsker du å ta sikkerhetskopi av dette prosjektet? - + The project was locked by the computer '{0}' ({1} {2}), last active on {3}. Prosjektet er låst av datamaskinen '{0}' ({1} {2}), siste registrerte aktivitet var {3}. - + Project Locked Prosjektlås - + The project is already open by another instance of novelWriter, and is therefore locked. Override lock and continue anyway? Prosjektet er allerede åpent av en annen instans av novelWriter, og er derfor låst. Vil du overstyre denne låsen og fortsette likevel? - + Note: If the program or the computer previously crashed, the lock can safely be overridden. If, however, another instance of novelWriter has the project open, overriding the lock may corrupt the project, and is not recommended. Merk at hvis programmet har krasjet og har lagt igjen låsen, kan man trygt overstyre denne. Men hvis en annen instans av novelWriter har prosjektet åpent, kan det å overstyre låsen føre til tap av data, og dette er ikke anbefalt. - + The project index is outdated or broken. Rebuilding index. Prosjektets indeks er utdatert eller skadet. Bygger indeksen på nytt. - + Text files ({0}) Tekstfiler ({0}) - + Markdown files ({0}) Markdown-filer ({0}) - + novelWriter files ({0}) novelWriter-filer ({0}) - + All files ({0}) Alle filer ({0}) - + Import File Importer fil - + Could not read file. The file must be an existing text file. Kunne ikke lese filen. Filen må eksistere fra før av. - + Please open a document to import the text file into. Vennligst åpne et dokument hvor teksten i filen kan importeres. - + Import Document Importer dokument - + Importing the file will overwrite the current content of the document. Do you want to proceed? Å importere filen vil overskrive all eksisterende tekst i dokumentet. Ønsker du å fortsette? - + Indexing: '{0}' Indekserer: '{0}' - + Unknown item Ukjent enhet - + Indexing completed in {0} ms Indekseringen tok {0} ms - + The project index has been successfully rebuilt. Prosjektets indeks har blitt bygget på nytt. - + Information Informasjon - + Warning Advarsel - + Error Feil - + This is a bug! Dette er en systemfeil! - + Internal Error Intern feil - + Exit Avslutt - + Do you want to exit novelWriter? Ønsker du å avslutte novelWriter? - + novelWriter is ready ... novelWriter er klar ... @@ -2763,47 +2762,47 @@ GuiPreferences - + Preferences Innstillinger - + General Generelt - + Projects Prosjekt - + Documents Dokument - + Editor Editor - + Highlighting Fremheving - + Automation Automasjon - + Some changes will not be applied until novelWriter has been restarted. Noen endringer vil ikke tas i bruk før neste gang novelWriter startes. - + Quotes Sitattegn @@ -2811,107 +2810,107 @@ GuiPreferencesAutomation - + Automatic Features Automatiske funksjoner - + Auto-select word under cursor Auto-velg ord under markør - + Apply formatting to word under cursor if no selection is made. Hvis ingen tekst er valgt, formatter ordet hvor markøren står. - + Auto-replace text as you type Erstatt mens du skriver - + Allow the editor to replace symbols as you type. La editoren erstatte symboler mens du skriver. - + Replace as You Type Erstatt mens du skriver - + Auto-replace single quotes Erstatt enkle sitattegn - + Try to guess which is an opening or a closing single quote. Forsøker å gjette hva som er venstre og høyre tegn. - + Auto-replace double quotes Erstatt doble sitattegn - + Try to guess which is an opening or a closing double quote. Forsøker å gjette hva som er venstre og høyre tegn. - + Auto-replace dashes Erstatt bindestreker - + Double and triple hyphens become short and long dashes. To og tre bindestreker erstattes med kort og lang bindestrek. - + Auto-replace dots Erstatt tre punktum - + Three consecutive dots become ellipsis. Tre punktum på rad erstattes med ellipsis. - + Automatic Padding Automatisk mellomrom - + Insert non-breaking space before Sett inn hardt mellomrom foran - + Insert non-breaking space after Sett inn hardt mellomrom etter - + Use thin space instead Bruk tynt mellomrom istedet - + Automatically add space before any of these symbols. Legg til mellomrom automatisk foran disse tegnene. - + Automatically add space after any of these symbols. Legg til mellomrom automatisk etter disse tegnene. - + Inserts a thin space instead of a regular space. Sett inn et tynt mellomrom istedenfor et vanlig et. @@ -2919,107 +2918,107 @@ GuiPreferencesDocuments - + Text Style Tekststil - + Font family Skriftfamilie - + Font for the document editor and viewer. Skrifttype til bruk for editor og visning. - + Font size Skriftstørrelse - + Font size for the document editor and viewer. Skriftstørrelse til bruk for editor og visning. - + pt - + Text Flow Tekstflyt - + Maximum text width in "Normal Mode" Maks tekstbredde i "Normal-modues" - + Horizontal margins are scaled automatically. Horisontale marger skalerer da automatisk. - + px - + Maximum text width in "Focus Mode" Maks tekstbredde i "Fokus-modues" - + Disable maximum text width in "Normal Mode" Slå av maks tekstbredde i "Normal-modus" - + Text width is defined by the margins only. Tekstbredden er kun definert av margene. - + Hide document footer in "Focus Mode" Gjem dokumentets bunnlinje i "Fokus-modus" - + Hide the information bar at the bottom of the document. Gjemmer informasjonslinja i bunnen av dokumentet. - + Justify the text margins in editor and viewer Bruk justerte marger i editor og visning - + Lay out text with straight edges in the editor and viewer. Justerte marger gir rette linjeender i avsnitt. - + Text margin Marger - + If maximum width is set, this becomes the minimum margin. Hvis tekstbredde er satt, så blir dette istedet minste marger. - + Tab width Tabulatorens bredde - + The width of a tab key press in the editor and viewer. Hvor langt tabulatoren hopper i editor og visning. @@ -3027,127 +3026,127 @@ GuiPreferencesEditor - + Spell Checking Stavekontroll - + Internal Intern - + Spell check provider Verktøy for stavekontroll - + Note that the internal spell check tool is quite slow. Merk at den interne stavekontrollen er ganske treg. - + Spell check language Språk for stavekontroll - + Available languages are determined by your system. Tilgjengelige språk hentes fra operativystemet ditt. - + Big document limit Grense for store dokumenter - + Full spell checking is disabled above this limit. Automatisk stavekontroll slås av over grensen. - + kB - + Word Count Telling av ord - + Word count interval Telle-intervall - + How often the word count is updated. Hvor ofte antall ord blir oppdatert. - + seconds sekunder - + Writing Guides Hjelpesymboler - + Show tabs and spaces Synlige tabulatorer og mellomrom - + Add symbols to indicate tabs and spaces in the editor. Viser symboler for å indikere disse i editoren. - + Show line endings Synlige linjeender - + Add a symbol to indicate line endings in the editor. Viser symbol for å indikere dette i editoren. - + Scroll Behaviour Rullefelt - + Scroll past end of the document Tillat å rulle forbi slutten av dokumentet - + Also improves trypewriter scrolling for short documents. Forbedrer funksjonen til skrivemaskin-rulling. - + Typewriter style scrolling when you type Skrivemaskin-liknende rulling mens du skriver - + Try to keep the cursor at a fixed vertical position. Prøver å holde markøren på samme sted vertikalt. - + Minimum position for Typewriter scrolling Minste avstand for skrivemaskin-rulling - + Percentage of the editor height from the top. I prosent fra toppen av editor-vinduet. @@ -3155,82 +3154,82 @@ GuiPreferencesGeneral - + Look and Feel Utseende - + Main GUI theme Fargetema - + Changing this requires restarting novelWriter. Endring av dette krever omstart av novelWriter. - + Main icon theme Ikon-tema - + Prefer icons for dark backgrounds Foretrekk ikoner for mørk bakgrunn - + May improve the look of icons on dark themes. Kan forbedre utseende på mørke temaer. - + Font family Skriftfamilie - + Font size Skriftstørrelse - + pt - + GUI Settings Brukergrensesnitt - + Show full path in document header Vis full prosjektbane i dokumenthoder - + Add the parent folder names to the header. Legger til mappene foran dokumentets navn. - + Hide vertical scroll bars in main windows Skjul vertikale rullefelt i hovedvinduer - + Scrolling available with mouse wheel and keys only. Rulling kan bare gjøres med mus og tastatur. - + Hide horizontal scroll bars in main windows Skjul horisontale rullefelt i hovedvinduer - + Main GUI language Programspråk @@ -3238,107 +3237,107 @@ GuiPreferencesProjects - + Automatic Save Automatisk lagring - + Save document interval Interval for lagring av dokument - + How often the open document is automatically saved. Hvor ofte det åpne dokumentet lagres automatisk. - + seconds sekunder - + Save project interval Interval for lagring av prosjekt - + How often the open project is automatically saved. Hvor ofte det åpne prosjektet lagres automatisk. - + Project Backup Sikkerhetskopi - + Browse Bla - + Backup storage location Filbane for sikkerhetskopi - + Path: {0} Filbane: {0} - + Run backup when the project is closed Lag sikkerhetskopi når prosjektet lukkes - + Can be overridden for individual projects in Project Settings. Kan overstyres fra individuelle prosjektinnstillinger. - + Ask before running backup Spør før sikkerhetskopi tas - + If off, backups will run in the background. Hvis avslått, tas sikkerhetskopi automatisk. - + Session Timer Sesjons-klokke - + Pause the session timer when not writing Sett klokka på pause når du er inaktiv - + Also pauses when the application window does not have focus. Pauses også når du ikke jobber i applikasjonens vindu. - + Editor inactive time before pausing timer Tid uten skriving før klokka settes på pause - + User activity includes typing and changing the content. Dette måler kun endringer i teksteditoren. - + minutes minutter - + Backup Directory Mappe for sikkerhetskopi @@ -3346,47 +3345,47 @@ GuiPreferencesQuotes - + Quotation Style Sitattegn - + Single quote open style Enkelt sitat, venstre side - + The symbol to use for a leading single quote. Symbol for enkelt sitattegn før et sitat. - + Single quote close style Enkelt sitat, høyre side - + The symbol to use for a trailing single quote. Symbol for enkelt sitattegn etter et sitat. - + Double quote open style Dobbelt sitat, venstre side - + The symbol to use for a leading double quote. Symbol for dobbelt sitattegn før et sitat. - + Double quote close style Dobbelt sitat, høyre side - + The symbol to use for a trailing double quote. Symbol for dobbelt sitattegn etter et sitat. @@ -3394,67 +3393,67 @@ GuiPreferencesSyntax - + Highlighting Theme Syntaksfremheving - + Highlighting theme Fremhevingstema - + Colour theme to apply to the editor and viewer. Fargetema for editor og visning. - + Quotes & Dialogue Sitattegn & dialog - + Highlight text wrapped in quotes Fremhev tekst mellom sitattegn - + Applies to single, double and straight quotes. Gjelder enkle, doble og rette sitattegn. - + Allow open-ended single quotes Tillat enkle sitattegn som ikke lukkes - + Highlight single-quoted line with no closing quote. Fremhev sitater som ikke er lukket i samme avsnitt. - + Allow open-ended double quotes Tillat doble sitattegn som ikke lukkes - + Highlight double-quoted line with no closing quote. Fremhev sitater som ikke er lukket i samme avsnitt. - + Text Emphasis Fremheving av tekst - + Add highlight colour to emphasised text Fremhev formattert tekst - + Applies to emphasis (italic) and strong (bold). Gjelder kursiv og fet tekst. @@ -3596,57 +3595,57 @@ GuiProjectEditMain - + Project Settings Prosjektinnstillinger - + Working title Arbeidstittel - + Should be set only once. Bør bare settes én gang. - + Novel title Bokens tittel - + Change whenever you want! Kan endres når som helst! - + Author(s) Forfatter(e) - + One name per line. Ett navn per linje. - + Default Ingen valg - + Spell check language Språk for stavekontroll - + Overrides main preferences. Overstyrer valg i innstillinger. - + No backup on close Slå av sikkerhetskopi @@ -3654,37 +3653,37 @@ GuiProjectEditReplace - + Keyword Kodeord - + Replace With Erstatt med - + Save entry Lagre tekst - + Add new entry Legg til ny - + Delete selected entry Slett valgte element - + Text Replace List for Preview and Export Erstatningsliste for forhåndsvisning og eksport - + Select item to edit Velg enhet å redigere @@ -3692,77 +3691,77 @@ GuiProjectEditStatus - + Save Lagre - + Colour Farge - + Novel File Status Levels Statusnivåer i roman-filer - + Note File Importance Levels Viktighetsnivåer i notatfiler - + Select Colour Velg farge - + New Item Legg til - + Label Navn - + Usage Bruk - + Add new entry Legg til ny - + Delete selected entry Slett valgte element - + Select item to edit Velg enhet å redigere - + Cannot delete a status item that is in use. Kan ikke slette status som er i bruk. - + Not in use Ikke i bruk - + Used once Brukt ett sted - + Used by {0} items Brukt {0} steder @@ -3770,62 +3769,62 @@ GuiProjectLoad - + Open Project Åpne prosjekt - + Working Title Arbeidstittel - + Words Ord - + Last Opened Sist åpnet - + Recently Opened Projects Tidligere åpnede prosjekter - + Path Filbane - + New Ny - + Remove Fjern - + novelWriter Project File ({0}) novelWriter-prosjektfil ({0}) - + All files ({0}) Alle filer ({0}) - + Remove Entry Fjern linje - + Remove '{0}' from the recent projects list? The project files will not be deleted. Vil du fjerne '{0}' fra listen over tidligere åpnede prosjekter? Selve prosjektfilene blir ikke slettet. @@ -3833,27 +3832,27 @@ GuiProjectSettings - + Project Settings Prosjektinnstillinger - + Settings Innstillinger - + Status Status - + Importance Viktighet - + Auto-Replace Autoerstatt @@ -4065,27 +4064,27 @@ GuiWordList - + Project Word List Prosjektets ordliste - + Add new entry Legg til nytt - + Delete selected entry Slett valgte element - + Cannot add a blank word. Kan ikke legge til et tomt ord. - + The word '{0}' is already in the word list. Ordet '{0}' ligger allerede i ordlisten. diff --git a/i18n/nw_pt.ts b/i18n/nw_pt.ts index 6664a763..b4f5cebd 100644 --- a/i18n/nw_pt.ts +++ b/i18n/nw_pt.ts @@ -1,6 +1,5 @@ - - + Common @@ -335,97 +334,97 @@ GuiAbout - + About novelWriter Sobre o novelWriter - + novelWriter is a markdown-like text editor designed for organising and writing novels. It is written in Python 3 with a Qt5 GUI, using PyQt5. novelWriter é um editor de texto som sintaxe semelhante ao markdown, projetado para a escrita e organização de livros. É escrito em Python 3 com interface de usuário em Qr5, usando PyQt5. - + novelWriter is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. novelWriter é distribuído na especativa de que seja útil, mas SEM NENHUMA GARANTIA, nem mesmo a garantia implícita de COMERCIALIZAÇÃO ou ADEQUAÇÃO PARA UM PROPÓSITO ESPECÍFICO. - + Credits Créditos - + novelWriter is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. novelWriter é um software livre: você pode redistribuí-lo e/ou modificá-lo sob os termos da GNU Licença Pública Geral, assim como publicada pela Free Software Foundation, tanto na versão 3 da licença, ou (à sua escolha) qualquer versão subsequente. - + Theme: {0} Tema: {0} - + Icons: {0} Ícones: {0} - + Syntax: {0} Sintaxe: {0} - + Website: {0} Website: {0} - + About Sobre - + Release Lançamento - + See the Licence tab for the full licence text, or visit the GNU website at {0} for more details. Veja a aba de Licença para o texto completo de licença, ou visite o website da GNU em {0} para mais detalhes. - + Licence Licença - + Translations Traduções - + Author Autor - + Credit Créditos - + Concept Conceito - + i18n - + Developer Desenvolvimento @@ -1031,37 +1030,37 @@ GuiDocMerge - + Documents to Merge Documentos para Mesclar - + Drag and drop items to change the order. Arraste e solte items para mudar a ordem. - + Merge Documents Mescla de Documentos - + No source documents found. Nothing to do. Nenhum documento-fonte foi encontrado. Nada para fazer. - + No source document selected. Nothing to do. Nenhum documento de origem selecionado. Nada a ser feito. - + Could not parse source document. Não foi possível interpretar o documento. - + Element selected in the project tree must be a folder. O elemento selecionado na árvore do projeto deve ser um diretório. @@ -1069,72 +1068,72 @@ GuiDocSplit - + Document Headers Cabeçalhos do Documento - + Select the maximum level to split into files. Selecione o nível máximo para dividir em arquivos. - + Split on Header Level 1 (Title) Dividir nos cabeçalhos de nível 1 (Título) - + Split up to Header Level 2 (Chapter) Dividir até os cabeçalhos de nível 2 (Capítulo) - + Split up to Header Level 3 (Scene) Dividir até os cabeçalhos de nível 3 (Cena) - + Split up to Header Level 4 (Section) Dividir até os cabeçalhos de nível 4 (Seção) - + Split Document Divisão de Documento - + No source document selected. Nothing to do. Nenhum documento de origem selecionado. Nada a ser feito. - + Could not parse source document. Não foi possível interpretar o documento. - + No headers found. Nothing to do. Nenhum cabeçalho foi encontrado. Nada para fazer. - + Cannot add new folder for the document split. Maximum folder depth has been reached. Please move the file to another level in the project tree. Não é possível adicionar um novo diretório para a divisão do documento. A profundidade máxima dos diretórios foi alcançada. Por favor mova o arquivo para outro nível na árvore do projeto. - + Continue with the splitting process? Continuar com o processo de divisão? - + Element selected in the project tree must be a file. O elemento selecionado na árvore do projeto deve ser um arquivo. - + The document will be split into {0} file(s) in a new folder. The original document will remain intact. O documento será dividio em {0} arquivo(s) em um novo diretório. O documento original será mantido intacto. @@ -1287,27 +1286,27 @@ GuiItemEditor - + Item Settings Configurações do Item - + Include when building project Incluir ao construir o projeto - + Label Rótulo - + Status Estado - + Layout Leiaute @@ -1315,207 +1314,207 @@ GuiMain - + New project created ... Novo projeto criado... - + The project is already open by another instance of novelWriter, and is therefore locked. Override lock and continue anyway? O projeto já está aberto em outra instância do novelWriter, e portanto foi bloqueado. Deseja sobrescrever o bloqueio e continuar mesmo assim? - + Note: If the program or the computer previously crashed, the lock can safely be overridden. If, however, another instance of novelWriter has the project open, overriding the lock may corrupt the project, and is not recommended. Nota: Se o programa ou o computador sofreu uma falha anteriormente, o bloqueio pode ser sobrescrito com segurança. Se, no entanto, outra instância do novelWriter esteja com o projeto aberto, sobrescrever o bloqueio pode corromper o projeto e não é recomendado. - + Unknown item Item desconhecido - + Information Informação - + Warning Alerta - + Error Erro - + This is a bug! Isto é um bug! - + Internal Error Erro Interno - + Editor Editor - + Outline Estrutura - + Cannot create new project when another project is open. Não é possível criar um novo projeto quando outro projeto está aberto. - + A project already exists in that location. Please choose another folder. Um projeto já existe neste local. Por favor escolha outro diretório. - + Close Project Fechar Projeto - + Close the current project? Fechar o projeto atual? - + Changes are saved automatically. As alterações serão salvas automaticamente. - + Backup Project Cria uma cópia de segurança do diretório do projeto - + Backup the current project? Criar cópia de segurança do projeto atual? - + Project Locked Projeto Bloqueado - + Import File Importar Arquivo - + Could not read file. The file must be an existing text file. Não foi possível ler o arquivo. O arquivo deve ser um arquivo de texto existente. - + Please open a document to import the text file into. Por favor, abra um documento para importar o text nele. - + Import Document Importar Documento - + Importing the file will overwrite the current content of the document. Do you want to proceed? Importar o arquivo vai sobrescrever o conteúdo atual do documento. Você deseja continuar? - + The project index has been successfully rebuilt. O índice do projeto foi reconstruído com sucesso. - + Exit Sair - + Do you want to exit novelWriter? Você deseja realmente sair do novelWriter? - + Indexing completed in {0} ms Indexação completa em {0} ms - + Project Projeto - + Novel Livro - + Project Details Detalhes do Projeto - + Writing Statistics Estatísticas de Escrita - + Project Settings Configurações do Projeto - + The project index is outdated or broken. Rebuilding index. O índice do projeto está desatualizado ou quebrado. Reconstruíndo o indice. - + The project was locked by the computer '{0}' ({1} {2}), last active on {3}. O projeto foi bloqueado pelo computador '{0}' ({1} {2}), ativo pela última vez em {3}. - + Indexing: '{0}' Indexando: '{0}' - + Text files ({0}) Arquivos de texto ({0}) - + Markdown files ({0}) Arquivos Markdown ({0}) - + novelWriter files ({0}) Arquivos do novelWriter ({0}) - + All files ({0}) Todos os arquivos ({0}) - + novelWriter is ready ... O novelWriter está pronto ... @@ -2763,47 +2762,47 @@ GuiPreferences - + Some changes will not be applied until novelWriter has been restarted. Algumas alterações não serão aplicadas enquanto a aplicação não for reiniciada. - + Preferences Preferências - + General Geral - + Projects Projetos - + Editor Editor - + Documents Documentos - + Highlighting Destaque - + Automation Automação - + Quotes Citações @@ -2811,107 +2810,107 @@ GuiPreferencesAutomation - + Automatic Features Funcionalidades Automáticas - + Auto-select word under cursor Selecionar automaticamente a palavra sob o cursor - + Apply formatting to word under cursor if no selection is made. Aplicar a formatação à palavra sob o cursor se nenhuma seleção for feita. - + Auto-replace text as you type Substituir automaticamente o texto enquanto digita - + Allow the editor to replace symbols as you type. Permite que o editor substituia símbolos emquanto você digita. - + Replace as You Type Substituição Durante a Digitação - + Auto-replace single quotes Substituir automaticamente aspas simples - + Try to guess which is an opening or a closing single quote. Tenta adivinhar se a aspa simples é de abertura ou de fechamento. - + Auto-replace double quotes Subsitituir automaticamente aspas duplas - + Try to guess which is an opening or a closing double quote. Tenta adivinhar se a aspa dupla é de abertura ou de fechamento. - + Auto-replace dashes Substituir automaticamente os travessões - + Double and triple hyphens become short and long dashes. Hífens duplos ou triplos se tornam travessões curtos ou longos. - + Auto-replace dots Substituir automaticamente os pontos - + Three consecutive dots become ellipsis. Três pontos consecutivos se tornam uma reticência. - + Automatic Padding Espaçamento Automático - + Insert non-breaking space before Insere um espaço não-separável antes - + Insert non-breaking space after Insere um espaço não-separável após - + Use thin space instead Usar um espaço estreito - + Automatically add space before any of these symbols. Adicionar automaticamente um espaço antes de cada um desses símbolos. - + Automatically add space after any of these symbols. Adicionar automaticamente um espaço após cada um desses símbolos. - + Inserts a thin space instead of a regular space. Insere um espaço estreito ao invés de um espaço regular. @@ -2919,107 +2918,107 @@ GuiPreferencesDocuments - + Text Style Estilo do Texto - + Font family Família da fonte - + Font for the document editor and viewer. Fonte para o editor e visualizador de documentos. - + Font size Tamanho da fonte - + Font size for the document editor and viewer. Tamanho da fonte para o editor e visualizador de documentos. - + Text Flow Fluxo do Texto - + Maximum text width in "Normal Mode" Largura máxima do texto no "Modo Normal" - + Horizontal margins are scaled automatically. Margens horizontais são redimensionadas automaticamente. - + Maximum text width in "Focus Mode" Largura máxima do texto no "Modo Foco" - + Disable maximum text width in "Normal Mode" Desabilita a largura máxima do texto no "Modo Normal" - + Text width is defined by the margins only. A largura do texto é definida apenas pelas margens. - + Hide document footer in "Focus Mode" Oculta o rodapé do documento no "Modo Foco" - + Hide the information bar at the bottom of the document. Oculta a barra de informações na parte de baixo do documento. - + Justify the text margins in editor and viewer Justifica as margens do texto no editor e visualizador - + Lay out text with straight edges in the editor and viewer. Organiza o texto com cantos retos no editor e visualizador. - + Text margin Margem do texto - + If maximum width is set, this becomes the minimum margin. Se a largura máxima for definida, esta se torna a margem mínima. - + Tab width Largura da tabulação - + The width of a tab key press in the editor and viewer. A largura de uma tabulação no editor e visualizador. - + px px - + pt pt @@ -3027,127 +3026,127 @@ GuiPreferencesEditor - + Spell Checking Correção Ortográfica - + Internal Interno - + Spell check provider Provedor de correção ortográfica - + Note that the internal spell check tool is quite slow. Note que o corretor ortográfico interno é significativamente lento. - + Spell check language Idioma do corretor ortográfico - + Available languages are determined by your system. Os idiomas disponíveis são determinados pelo seu sistema. - + Big document limit Limite de documento grande - + Full spell checking is disabled above this limit. A verificação ortográfica é desabilitada acima desse limite. - + Writing Guides Guias de Escrita - + Show tabs and spaces Mostrar tabulações e espaços - + Add symbols to indicate tabs and spaces in the editor. Adiciona símbolos para indicar tabulações e espaços no editor. - + Show line endings Mostrar terminações de linha - + Add a symbol to indicate line endings in the editor. Adiciona um símbolo para indicar a terminação de linha no editor. - + Scroll Behaviour Comportamento da Rolagem - + Scroll past end of the document Rolar após o final do documento - + Also improves trypewriter scrolling for short documents. Também melhora a rolagem de máquina de escrever em documentos curtos. - + Typewriter style scrolling when you type Rolagem no estilo de máquina de escrever quando digita - + Try to keep the cursor at a fixed vertical position. Tenta manter o cursor em uma posição vertical fixa. - + Minimum position for Typewriter scrolling Posição máxima da rolagem de máquina de escrever - + Percentage of the editor height from the top. Porcentagem da altura do editor desde o topo. - + kB kB - + Word Count Contagem de Palavras - + Word count interval Intervalo de contagem de palavras - + How often the word count is updated. Com qual frequência a contagem de palavras é atualizada. - + seconds segundos @@ -3155,82 +3154,82 @@ GuiPreferencesGeneral - + Look and Feel Aparência - + Main GUI theme Tema da interface - + Changing this requires restarting novelWriter. Alterações nessa configuração exigem reinício da aplicação. - + Main icon theme Tema dos ícones - + Prefer icons for dark backgrounds Preferir ícones para fundos escuros - + May improve the look of icons on dark themes. Pode melhorar a aparência dos ícones em temas escuros. - + Font family Família da fonte - + Font size Tamanho da fonte - + GUI Settings Configurações da Interface - + Show full path in document header Mostrar o caminho completo do documento no cabeçalho - + Add the parent folder names to the header. Adiciona o nome dos diretórios-pai ao cabeçalho. - + Hide vertical scroll bars in main windows Ocultar a barra de rolagem vertical nas janelas principais - + Scrolling available with mouse wheel and keys only. A rolagem de tela estará diponível apenas com o mouse ou teclado. - + Hide horizontal scroll bars in main windows Ocultar a barra de rolagem horizontal nas janelas principais - + pt pt - + Main GUI language Idioma da Interface @@ -3238,107 +3237,107 @@ GuiPreferencesProjects - + Automatic Save Salvamento Automático - + Save document interval Intervalo de salvamento do documento - + How often the open document is automatically saved. Com qual frequência o documento aberto é salvo automaticamente. - + Save project interval Intervalo de salvamento do projeto - + How often the open project is automatically saved. Com qual frequencia o projeto aberto é salvo automaticamente. - + Project Backup Cópia de Segurança - + Browse Procurar - + Backup storage location Localização da cópia de segurança - + Run backup when the project is closed Executar a cópia de segurança quando o projeto é fechado - + Can be overridden for individual projects in Project Settings. Pode ser sobrescrito para projetos individuais nas configurações do projeto. - + Ask before running backup Perguntar antes de executar a cópia de segurança - + If off, backups will run in the background. Se desativado, cópias de segurança serão executadas em segundo plano. - + Backup Directory Diretório das Cópias de Segurança - + seconds segundos - + Session Timer Temporizador da Sessão - + Pause the session timer when not writing Pausa o temporizador da sessão quando não estiver escrevendo - + Also pauses when the application window does not have focus. Também pausa quando a janela da aplicação não estiver em foco. - + Editor inactive time before pausing timer Tempo inativo do editor antes de pausar o temporizador - + User activity includes typing and changing the content. Atividades de usuário incluem escrever e alterar o conteúdo. - + minutes minutos - + Path: {0} Caminho: {0} @@ -3346,47 +3345,47 @@ GuiPreferencesQuotes - + Quotation Style Estilo de Aspas - + Single quote open style Estilo da aspa de abertura simples - + The symbol to use for a leading single quote. O símbolo usado para a aspa simples à esquerda. - + Single quote close style Estilo da aspa de fechamento simples - + The symbol to use for a trailing single quote. O símbolo usado para a aspa simples à esquerda. - + Double quote open style Estilo da aspa de abertura dupla - + The symbol to use for a leading double quote. O símbolo usado para a aspa dupla à esquerda. - + Double quote close style Estilo da aspa de fechamento dupla - + The symbol to use for a trailing double quote. O símbolo usado para a aspa dupla à direita. @@ -3394,67 +3393,67 @@ GuiPreferencesSyntax - + Highlighting Theme Tema do Destaque - + Highlighting theme Tema do destaque - + Colour theme to apply to the editor and viewer. Tema de cores para aplicar ao editor e visualizador. - + Quotes & Dialogue Citações e Diálogos - + Highlight text wrapped in quotes Destaca o texto em citações - + Applies to single, double and straight quotes. Aplica-se a citações com aspas simples, duplas e retas. - + Allow open-ended single quotes Permite citações com aspas simples sem fechamento - + Highlight single-quoted line with no closing quote. Destaca a linha com citação de aspas simples sem aspas de fechamento. - + Allow open-ended double quotes Permite citações com aspas duplas sem fechamento - + Highlight double-quoted line with no closing quote. Destaca a linha com citação de aspas duplas sem aspas de fechamento. - + Text Emphasis Ênfase de Texto - + Add highlight colour to emphasised text Adiciona destaque de cor ao texto enfatizado - + Applies to emphasis (italic) and strong (bold). Aplica-se à ênfase (itálico) e ênfase forte (negrito). @@ -3596,57 +3595,57 @@ GuiProjectEditMain - + Should be set only once. Deve ser definido apenas uma vez. - + Change whenever you want! Mude quando quiser! - + One name per line. Um nome por linha. - + Default Padrão - + Overrides main preferences. Sobrescreve as preferências globais. - + Project Settings Configurações do Projeto - + Working title Nome do projeto - + Novel title Título do tivro - + Author(s) Autor(es) - + Spell check language Idioma do corretor ortográfico - + No backup on close Não salvar cópia de segurança ao fechar @@ -3654,37 +3653,37 @@ GuiProjectEditReplace - + Keyword Palavra-chave - + Replace With Substituir Com - + Save entry Salvar entrada - + Add new entry Adiciona uma nova entrada - + Delete selected entry Remove a entrada selecionada - + Text Replace List for Preview and Export Lista de Substituição de Texto para o Preview ou Exportação - + Select item to edit Selecione um item para editar @@ -3692,77 +3691,77 @@ GuiProjectEditStatus - + Novel File Status Levels Níves de Estado do Arquivo do Livro - + Note File Importance Levels Níves de Importância do Arquivo do Livro - + New Item Novo Item - + Save Salvar - + Colour Cor - + Select Colour Selecione a Cor - + Label Rótulo - + Usage Uso - + Add new entry Adiciona uma nova entrada - + Delete selected entry Remove a entrada selecionada - + Select item to edit Selecione um item para editar - + Cannot delete a status item that is in use. Não é possível remove um item de status em uso. - + Not in use Não utilizado - + Used once Utilizado uma vez - + Used by {0} items Utilizado por {0} items @@ -3770,62 +3769,62 @@ GuiProjectLoad - + novelWriter Project File ({0}) Arquivo de Projeto do novelWriter ({0}) - + Open Project Abrir Projeto - + Working Title Nome do projeto - + Words Palavras - + Last Opened Aberto Pela Última Vez - + Recently Opened Projects Projetos Abertos Recentemente - + Path Caminho - + New Novo - + Remove Entry Remover Entrada - + Remove '{0}' from the recent projects list? The project files will not be deleted. Remover {0} da lista de projetos recentes? Os arquivos do projeto não serão removidos. - + Remove Remover - + All files ({0}) Todos os arquivos ({0}) @@ -3833,27 +3832,27 @@ GuiProjectSettings - + Project Settings Configurações do Projeto - + Settings Configurações - + Status Estado - + Importance Importância - + Auto-Replace Substituição Automática @@ -4065,27 +4064,27 @@ GuiWordList - + Project Word List Lista de Palavras do Projeto - + Add new entry Adiciona uma nova entrada - + Delete selected entry Remove a entrada selecionada - + Cannot add a blank word. Não é possível adicionar uma palavra em branco. - + The word '{0}' is already in the word list. A palavra '{0}' já está na lista de palavras. diff --git a/novelWriter.pro b/novelWriter.pro index da627a9c..e0c1fe1f 100644 --- a/novelWriter.pro +++ b/novelWriter.pro @@ -3,28 +3,28 @@ SOURCES += \ nw/core/document.py \ nw/core/project.py \ nw/core/tokenizer.py \ - nw/gui/about.py \ + nw/dialogs/about.py \ + nw/dialogs/docmerge.py \ + nw/dialogs/docsplit.py \ + nw/dialogs/itemeditor.py \ + nw/dialogs/preferences.py \ + nw/dialogs/projload.py \ + nw/dialogs/projsettings.py \ + nw/dialogs/wordlist.py \ nw/gui/build.py \ nw/gui/custom.py \ nw/gui/doceditor.py \ - nw/gui/docmerge.py \ - nw/gui/docsplit.py \ nw/gui/docviewer.py \ nw/gui/itemdetails.py \ - nw/gui/itemeditor.py \ nw/gui/mainmenu.py \ nw/gui/noveltree.py \ nw/gui/outline.py \ nw/gui/outlinedetails.py \ - nw/gui/preferences.py \ nw/gui/projdetails.py \ - nw/gui/projload.py \ - nw/gui/projsettings.py \ nw/gui/projtree.py \ nw/gui/projwizard.py \ nw/gui/statusbar.py \ nw/gui/theme.py \ - nw/gui/wordlist.py \ nw/gui/writingstats.py \ nw/common.py \ nw/constants.py \ diff --git a/nw/dialogs/__init__.py b/nw/dialogs/__init__.py new file mode 100644 index 00000000..caf2ea2f --- /dev/null +++ b/nw/dialogs/__init__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- + +from nw.dialogs.about import GuiAbout +from nw.dialogs.docmerge import GuiDocMerge +from nw.dialogs.docsplit import GuiDocSplit +from nw.dialogs.itemeditor import GuiItemEditor +from nw.dialogs.preferences import GuiPreferences +from nw.dialogs.projload import GuiProjectLoad +from nw.dialogs.projsettings import GuiProjectSettings +from nw.dialogs.wordlist import GuiWordList + +__all__ = [ + "GuiAbout", + "GuiDocMerge", + "GuiDocSplit", + "GuiItemEditor", + "GuiPreferences", + "GuiProjectLoad", + "GuiProjectSettings", + "GuiWordList", +] diff --git a/nw/gui/about.py b/nw/dialogs/about.py similarity index 100% rename from nw/gui/about.py rename to nw/dialogs/about.py diff --git a/nw/gui/docmerge.py b/nw/dialogs/docmerge.py similarity index 100% rename from nw/gui/docmerge.py rename to nw/dialogs/docmerge.py diff --git a/nw/gui/docsplit.py b/nw/dialogs/docsplit.py similarity index 100% rename from nw/gui/docsplit.py rename to nw/dialogs/docsplit.py diff --git a/nw/gui/itemeditor.py b/nw/dialogs/itemeditor.py similarity index 100% rename from nw/gui/itemeditor.py rename to nw/dialogs/itemeditor.py diff --git a/nw/gui/preferences.py b/nw/dialogs/preferences.py similarity index 100% rename from nw/gui/preferences.py rename to nw/dialogs/preferences.py diff --git a/nw/gui/projload.py b/nw/dialogs/projload.py similarity index 100% rename from nw/gui/projload.py rename to nw/dialogs/projload.py diff --git a/nw/gui/projsettings.py b/nw/dialogs/projsettings.py similarity index 100% rename from nw/gui/projsettings.py rename to nw/dialogs/projsettings.py diff --git a/nw/gui/wordlist.py b/nw/dialogs/wordlist.py similarity index 100% rename from nw/gui/wordlist.py rename to nw/dialogs/wordlist.py diff --git a/nw/gui/__init__.py b/nw/gui/__init__.py index 8744348f..26b1b1e0 100644 --- a/nw/gui/__init__.py +++ b/nw/gui/__init__.py @@ -1,50 +1,34 @@ # -*- coding: utf-8 -*- -from nw.gui.about import GuiAbout from nw.gui.build import GuiBuildNovel from nw.gui.doceditor import GuiDocEditor -from nw.gui.docmerge import GuiDocMerge -from nw.gui.docsplit import GuiDocSplit from nw.gui.docviewer import GuiDocViewer, GuiDocViewDetails from nw.gui.itemdetails import GuiItemDetails -from nw.gui.itemeditor import GuiItemEditor from nw.gui.mainmenu import GuiMainMenu from nw.gui.noveltree import GuiNovelTree from nw.gui.outline import GuiOutline from nw.gui.outlinedetails import GuiOutlineDetails -from nw.gui.preferences import GuiPreferences from nw.gui.projdetails import GuiProjectDetails -from nw.gui.projload import GuiProjectLoad -from nw.gui.projsettings import GuiProjectSettings from nw.gui.projtree import GuiProjectTree from nw.gui.projwizard import GuiProjectWizard from nw.gui.statusbar import GuiMainStatus from nw.gui.theme import GuiTheme -from nw.gui.wordlist import GuiWordList from nw.gui.writingstats import GuiWritingStats __all__ = [ - "GuiAbout", "GuiBuildNovel", "GuiDocEditor", - "GuiDocMerge", - "GuiDocSplit", "GuiDocViewDetails", "GuiDocViewer", "GuiItemDetails", - "GuiItemEditor", "GuiMainMenu", - "GuiNovelTree", "GuiMainStatus", + "GuiNovelTree", "GuiOutline", "GuiOutlineDetails", - "GuiPreferences", "GuiProjectDetails", - "GuiProjectLoad", - "GuiProjectSettings", "GuiProjectTree", "GuiProjectWizard", "GuiTheme", - "GuiWordList", "GuiWritingStats", ] diff --git a/nw/guimain.py b/nw/guimain.py index ba8a5ebc..ae93ef88 100644 --- a/nw/guimain.py +++ b/nw/guimain.py @@ -39,11 +39,14 @@ from PyQt5.QtWidgets import ( ) from nw.gui import ( - GuiAbout, GuiBuildNovel, GuiDocEditor, GuiDocMerge, GuiDocSplit, - GuiDocViewDetails, GuiDocViewer, GuiItemDetails, GuiItemEditor, - GuiMainMenu, GuiMainStatus, GuiNovelTree, GuiOutline, GuiOutlineDetails, - GuiPreferences, GuiProjectDetails, GuiProjectLoad, GuiProjectSettings, - GuiProjectTree, GuiProjectWizard, GuiTheme, GuiWordList, GuiWritingStats + GuiBuildNovel, GuiDocEditor, GuiDocViewDetails, GuiDocViewer, + GuiItemDetails, GuiMainMenu, GuiMainStatus, GuiNovelTree, GuiOutline, + GuiOutlineDetails, GuiProjectDetails, GuiProjectTree, GuiProjectWizard, + GuiTheme, GuiWritingStats +) +from nw.dialogs import ( + GuiAbout, GuiDocMerge, GuiDocSplit, GuiItemEditor, GuiPreferences, + GuiProjectLoad, GuiProjectSettings, GuiWordList ) from nw.core import NWProject, NWDoc, NWIndex from nw.enum import nwItemType, nwItemClass, nwAlert, nwWidget diff --git a/tests/test_gui/test_gui_about.py b/tests/test_dialogs/test_dlg_about.py similarity index 94% rename from tests/test_gui/test_gui_about.py rename to tests/test_dialogs/test_dlg_about.py index c2c9c6a7..d951e81a 100644 --- a/tests/test_gui/test_gui_about.py +++ b/tests/test_dialogs/test_dlg_about.py @@ -26,14 +26,14 @@ from tools import getGuiItem from PyQt5.QtWidgets import QAction, QMessageBox -from nw.gui import GuiAbout +from nw.dialogs import GuiAbout keyDelay = 2 typeDelay = 1 stepDelay = 20 @pytest.mark.gui -def testGuiAbout_Dialog(qtbot, monkeypatch, nwGUI): +def testDlgAbout_Dialog(qtbot, monkeypatch, nwGUI): """Test the full about dialogs. """ # NW About @@ -67,4 +67,4 @@ def testGuiAbout_Dialog(qtbot, monkeypatch, nwGUI): # qtbot.stopForInteraction() msgAbout._doClose() -# END Test testGuiAbout_Dialog +# END Test testDlgAbout_Dialog diff --git a/tests/test_gui/test_gui_itemeditor.py b/tests/test_dialogs/test_dlg_itemeditor.py similarity index 95% rename from tests/test_gui/test_gui_itemeditor.py rename to tests/test_dialogs/test_dlg_itemeditor.py index d4c8b7db..9a9e6d66 100644 --- a/tests/test_gui/test_gui_itemeditor.py +++ b/tests/test_dialogs/test_dlg_itemeditor.py @@ -28,15 +28,16 @@ from tools import cmpFiles, getGuiItem from PyQt5.QtWidgets import QAction, QMessageBox -from nw.gui import GuiItemEditor, GuiProjectTree +from nw.gui import GuiProjectTree from nw.enum import nwItemLayout +from nw.dialogs import GuiItemEditor keyDelay = 2 typeDelay = 1 stepDelay = 20 @pytest.mark.gui -def testGuiItemEditor_Dialog(qtbot, monkeypatch, nwGUI, fncDir, fncProj, refDir, outDir): +def testDlgItemEditor_Dialog(qtbot, monkeypatch, nwGUI, fncDir, fncProj, refDir, outDir): """Test the full item editor dialog. """ projFile = os.path.join(fncProj, "nwProject.nwx") @@ -108,4 +109,4 @@ def testGuiItemEditor_Dialog(qtbot, monkeypatch, nwGUI, fncDir, fncProj, refDir, # qtbot.stopForInteraction() -# END Test testGuiItemEditor_Dialog +# END Test testDlgItemEditor_Dialog diff --git a/tests/test_gui/test_gui_mergesplit.py b/tests/test_dialogs/test_dlg_mergesplit.py similarity index 97% rename from tests/test_gui/test_gui_mergesplit.py rename to tests/test_dialogs/test_dlg_mergesplit.py index b2d0135e..8a44fa4f 100644 --- a/tests/test_gui/test_gui_mergesplit.py +++ b/tests/test_dialogs/test_dlg_mergesplit.py @@ -28,14 +28,14 @@ from tools import cmpFiles, getGuiItem from PyQt5.QtWidgets import QAction, QMessageBox -from nw.gui import GuiDocMerge, GuiDocSplit +from nw.dialogs import GuiDocMerge, GuiDocSplit keyDelay = 2 typeDelay = 1 stepDelay = 20 @pytest.mark.gui -def testGuiMergeSplit_Tools(qtbot, monkeypatch, nwGUI, nwLipsum, refDir, outDir): +def testDlgMergeSplit_Tools(qtbot, monkeypatch, nwGUI, nwLipsum, refDir, outDir): """Test the full merge and split tools. """ # Block message box @@ -182,4 +182,4 @@ def testGuiMergeSplit_Tools(qtbot, monkeypatch, nwGUI, nwLipsum, refDir, outDir) # qtbot.stopForInteraction() -# END Test testGuiMergeSplit_Tools +# END Test testDlgMergeSplit_Tools diff --git a/tests/test_gui/test_gui_preferences.py b/tests/test_dialogs/test_dlg_preferences.py similarity index 98% rename from tests/test_gui/test_gui_preferences.py rename to tests/test_dialogs/test_dlg_preferences.py index 70e5aba1..76197081 100644 --- a/tests/test_gui/test_gui_preferences.py +++ b/tests/test_dialogs/test_dlg_preferences.py @@ -32,9 +32,9 @@ from PyQt5.QtWidgets import ( QDialogButtonBox, QDialog, QAction, QFileDialog, QFontDialog, QMessageBox ) -from nw.gui import GuiPreferences from nw.config import Config from nw.gui.custom import QuotesDialog +from nw.dialogs import GuiPreferences from nw.constants import nwConst keyDelay = 2 @@ -42,7 +42,7 @@ typeDelay = 1 stepDelay = 20 @pytest.mark.gui -def testGuiPreferences_Main(qtbot, monkeypatch, fncDir, outDir, refDir): +def testDlgPreferences_Main(qtbot, monkeypatch, fncDir, outDir, refDir): """Test the load project wizard. """ # Block message box @@ -259,4 +259,4 @@ def testGuiPreferences_Main(qtbot, monkeypatch, fncDir, outDir, refDir): # qtbot.stopForInteraction() -# END Test testGuiPreferences_Main +# END Test testDlgPreferences_Main diff --git a/tests/test_gui/test_gui_projload.py b/tests/test_dialogs/test_dlg_projload.py similarity index 96% rename from tests/test_gui/test_gui_projload.py rename to tests/test_dialogs/test_dlg_projload.py index 41458d9d..d552cc88 100644 --- a/tests/test_gui/test_gui_projload.py +++ b/tests/test_dialogs/test_dlg_projload.py @@ -31,14 +31,14 @@ from PyQt5.QtWidgets import ( QMessageBox ) -from nw.gui import GuiProjectLoad +from nw.dialogs import GuiProjectLoad keyDelay = 2 typeDelay = 1 stepDelay = 20 @pytest.mark.gui -def testGuiLoadProject_Main(qtbot, monkeypatch, nwGUI, nwMinimal): +def testDlgLoadProject_Main(qtbot, monkeypatch, nwGUI, nwMinimal): """Test the load project wizard. """ # Block message box @@ -114,4 +114,4 @@ def testGuiLoadProject_Main(qtbot, monkeypatch, nwGUI, nwMinimal): nwLoad.close() # qtbot.stopForInteraction() -# END Test testGuiLoadProject_Main +# END Test testDlgLoadProject_Main diff --git a/tests/test_gui/test_gui_projsettings.py b/tests/test_dialogs/test_dlg_projsettings.py similarity index 98% rename from tests/test_gui/test_gui_projsettings.py rename to tests/test_dialogs/test_dlg_projsettings.py index 3f2f8653..b753959e 100644 --- a/tests/test_gui/test_gui_projsettings.py +++ b/tests/test_dialogs/test_dlg_projsettings.py @@ -32,14 +32,14 @@ from PyQt5.QtWidgets import ( QDialog, QAction, QMessageBox, QColorDialog, QTreeWidgetItem ) -from nw.gui import GuiProjectSettings +from nw.dialogs import GuiProjectSettings keyDelay = 2 typeDelay = 1 stepDelay = 20 @pytest.mark.gui -def testGuiProjSettings_Dialog(qtbot, monkeypatch, nwGUI, fncDir, fncProj, outDir, refDir): +def testDlgProjSettings_Dialog(qtbot, monkeypatch, nwGUI, fncDir, fncProj, outDir, refDir): """Test the full project settings dialog. """ projFile = os.path.join(fncProj, "nwProject.nwx") @@ -243,4 +243,4 @@ def testGuiProjSettings_Dialog(qtbot, monkeypatch, nwGUI, fncDir, fncProj, outDi # qtbot.stopForInteraction() -# END Test testGuiProjSettings_Dialog +# END Test testDlgProjSettings_Dialog diff --git a/tests/test_gui/test_gui_wordlist.py b/tests/test_dialogs/test_dlg_wordlist.py similarity index 96% rename from tests/test_gui/test_gui_wordlist.py rename to tests/test_dialogs/test_dlg_wordlist.py index fdbc1725..6cd7b4ee 100644 --- a/tests/test_gui/test_gui_wordlist.py +++ b/tests/test_dialogs/test_dlg_wordlist.py @@ -28,14 +28,14 @@ from PyQt5.QtWidgets import QDialog, QMessageBox, QAction from tools import writeFile, readFile, getGuiItem from dummy import causeOSError -from nw.gui.wordlist import GuiWordList +from nw.dialogs import GuiWordList from nw.constants import nwFiles keyDelay = 2 typeDelay = 1 stepDelay = 20 -def testGuiWordList_Dialog(qtbot, monkeypatch, nwGUI, nwMinimal, tmpDir): +def testDlgWordList_Dialog(qtbot, monkeypatch, nwGUI, nwMinimal, tmpDir): """test the word list editor. """ monkeypatch.setattr(QMessageBox, "question", lambda *args: QMessageBox.Yes) @@ -130,4 +130,4 @@ def testGuiWordList_Dialog(qtbot, monkeypatch, nwGUI, nwMinimal, tmpDir): # qtbot.stopForInteraction() wList._doClose() -# END Test testGuiWordList_Dialog +# END Test testDlgWordList_Dialog diff --git a/tests/test_gui/test_gui_doceditor.py b/tests/test_gui/test_gui_doceditor.py index a4d0c43b..12ac5949 100644 --- a/tests/test_gui/test_gui_doceditor.py +++ b/tests/test_gui/test_gui_doceditor.py @@ -30,7 +30,7 @@ from PyQt5.QtCore import Qt from PyQt5.QtGui import QTextCursor from PyQt5.QtWidgets import QAction, QMessageBox, QDialog -from nw.gui.itemeditor import GuiItemEditor +from nw.dialogs.itemeditor import GuiItemEditor from nw.gui.doceditor import GuiDocEditor from nw.gui.projtree import GuiProjectTree from nw.enum import nwItemType, nwDocAction, nwWidget From 03a80beebeebbd136b21fcb61baa0cf6a3361a0b Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Fri, 23 Apr 2021 21:34:45 +0200 Subject: [PATCH 4/6] Move tools source files to their own folder --- i18n/nw_en_US.ts | 262 +++++++++--------- i18n/nw_fr.ts | 262 +++++++++--------- i18n/nw_nb_NO.ts | 262 +++++++++--------- i18n/nw_pt.ts | 262 +++++++++--------- novelWriter.pro | 6 +- nw/gui/__init__.py | 6 - nw/guimain.py | 8 +- nw/tools/__init__.py | 11 + nw/{gui => tools}/build.py | 0 nw/{gui => tools}/projwizard.py | 0 nw/{gui => tools}/writingstats.py | 0 .../test_tools_build.py} | 6 +- .../test_tools_projwizard.py} | 11 +- .../test_tools_writingstats.py} | 6 +- 14 files changed, 553 insertions(+), 549 deletions(-) create mode 100644 nw/tools/__init__.py rename nw/{gui => tools}/build.py (100%) rename nw/{gui => tools}/projwizard.py (100%) rename nw/{gui => tools}/writingstats.py (100%) rename tests/{test_gui/test_gui_build.py => test_tools/test_tools_build.py} (98%) rename tests/{test_gui/test_gui_projwizard.py => test_tools/test_tools_projwizard.py} (96%) rename tests/{test_gui/test_gui_writingstats.py => test_tools/test_tools_writingstats.py} (99%) diff --git a/i18n/nw_en_US.ts b/i18n/nw_en_US.ts index 76b206ec..f3318731 100644 --- a/i18n/nw_en_US.ts +++ b/i18n/nw_en_US.ts @@ -432,347 +432,347 @@ GuiBuildNovel - + Build Novel Project - + Title Formats for Novel Files - + Formatting Codes: - + {0} for the title as set in the document - + {0} for chapter number (1, 2, 3) - + {0} for chapter number as a word (one, two) - + {0} for chapter number in upper case Roman - + {0} for chapter number in lower case Roman - + {0} for scene number within chapter - + {0} for scene number within novel - + Leave blank to skip this heading, or set to a static text, like for instance '{0}', to make a separator. The separator will be centred automatically and only appear between sections of the same type. Leave blank to skip this heading, or set to a static text, like for instance '{0}', to make a separator. The separator will be centered automatically and only appear between sections of the same type. - + Not Set - + Title - + Chapter - + Unnumbered - + Scene - + Section - + Language - + Font Options - + Font family - + Font size - + Line height - + Justify text - + Disable styling - + Styling Options - + Include Options - + Include synopsis - + Include comments - + Include keywords - + Include body text - + File Filter Options - + Include files with layouts other than 'Note'. - + Include files with layout 'Note'. - + Ignore the 'Include when building project' setting and include all files in the output. - + Include novel files - + Include note files - + Ignore export flag - + Export Options - + Replace tabs with spaces - + Replace Unicode in HTML - + Build Preview - + Print - + Print Preview - + Print to PDF - + Save As - + Open Document (.odt) - + Flat Open Document (.fodt) - + novelWriter HTML (.htm) - + novelWriter Markdown (.nwd) - + Standard Markdown (.md) - + GitHub Markdown (.md) - + JSON + novelWriter HTML (.json) - + JSON + novelWriter Markdown (.json) - + Close - + Failed to generate preview. The result is too big. - + There were problems when building the project - + Open Document - + Flat Open Document - + Plain HTML - + novelWriter Markdown - + Standard Markdown - + GitHub Markdown - + JSON + novelWriter HTML - + JSON + novelWriter Markdown - + PDF - + Save Document As - + Unknown format - + {0} file successfully written to: - + Failed to write {0} file. {1} @@ -780,17 +780,17 @@ GuiBuildNovelDocView - + This area will show the content of the document to be exported or printed. Press the "Build Preview" button to generate content. - + Unknown - + <b>Build Time:</b> {0} @@ -4092,142 +4092,142 @@ GuiWritingStats - + Writing Statistics - + Session Start - + Length - + Idle - + Words - + Histogram - + Sum Totals - + Total Time: - + Idle Time: - + Filtered Time: - + Novel Word Count: - + Notes Word Count: - + Total Word Count: - + Filters - + Count novel files - + Count note files - + Hide zero word count - + Hide negative word count - + Group entries by day - + Show idle time - + Word count cap for the histogram - + Save As - + JSON Data File (.json) - + CSV Data File (.csv) - + JSON Data File - + CSV Data File - + Save Data As - + Failed to read session log file. @@ -4561,42 +4561,42 @@ ProjWizardCustomPage - + Custom Project Options - + Select which additional root folders to make, and how to populate the Novel folder. If you don't want to add chapters or scenes, set the values to 0. You can add scenes without chapters. - + Additional Root Folders - + {0} folder - + Populate Novel Folder - + Add chapters - + Scenes (per chapter) - + Add chapter folders @@ -4604,27 +4604,27 @@ ProjWizardFinalPage - + Finished - + All done. - + Press '{0}' to create the new project. - + Done - + Finish @@ -4632,22 +4632,22 @@ ProjWizardFolderPage - + Select Project Folder - + Select a location to store the project. A new project folder will be created in the selected location. - + Required - + Project Path @@ -4655,47 +4655,47 @@ ProjWizardIntroPage - + Create New Project - + Provide at least a working title. The working title should not be change beyond this point as it is used by the application for generating file names for for instance backups. The other fields are optional and can be changed at any time in Project Settings. - + Side image by {0}, {1} - + Required - + Optional - + Optional. One name per line. - + Working Title - + Novel Title - + Author(s) @@ -4703,27 +4703,27 @@ ProjWizardPopulatePage - + Populate Project - + Choose how to pre-fill the project. Either with a minimal set of starter items, an example project explaining and showing many of the features, or show further custom options on the next page. - + Fill the project with a minimal set of items - + Fill the project with example files - + Show detailed options for filling the project diff --git a/i18n/nw_fr.ts b/i18n/nw_fr.ts index 592f93ba..2dfc6310 100644 --- a/i18n/nw_fr.ts +++ b/i18n/nw_fr.ts @@ -432,347 +432,347 @@ GuiBuildNovel - + Build Novel Project Construction du roman - + Title Formats for Novel Files Formats des titres pour les fichiers de roman - + Formatting Codes: Codes de mise en forme : - + {0} for the title as set in the document {0} titre tel que défini dans le document - + {0} for chapter number (1, 2, 3) {0} chapitres numérotés en chiffres arabes (1, 2, 3) - + {0} for chapter number as a word (one, two) {0} chapitres numérotés en texte (un, deux) - + {0} for chapter number in upper case Roman {0} chapitres numérotés en chiffres romains majuscules - + {0} for chapter number in lower case Roman {0} chapitres numérotés en chiffres romains minuscules - + {0} for scene number within chapter {0} scènes numérotées au niveau du chapitre - + {0} for scene number within novel {0} scènes numérotées au niveau du roman - + Leave blank to skip this heading, or set to a static text, like for instance '{0}', to make a separator. The separator will be centred automatically and only appear between sections of the same type. Laisser vide pour ignorer cet en-tête, ou mettre un texte statique, par exemple '{0}' pour créer un séparateur. Le séparateur sera centré automatiquement et n'apparaîtra qu'entre sections du même type. - + Not Set Vide - + Title Titre - + Chapter Chapitre - + Unnumbered Sans numéro - + Scene Scène - + Section Section - + Language Langue - + Font Options Option de police - + Font family Police de caractères - + Font size Taille de police - + Line height Hauteur de ligne - + Justify text Justifier le texte - + Disable styling Pas de mise en forme - + Styling Options Options de mise en forme - + Include Options Options d'inclusion - + Include synopsis Inclure le synopsis - + Include comments Inclure les commentaires - + Include keywords Inclure les mots-clés - + Include body text Inclure le corps du texte - + File Filter Options Options de filtrage - + Include files with layouts other than 'Note'. Inclure les fichiers de format autre que 'Note'. - + Include files with layout 'Note'. Inclure les fichiers de format 'Note'. - + Ignore the 'Include when building project' setting and include all files in the output. Ignorer les indications "À inclure lors de la construction du roman" et inclure tous les fichiers dans le résultat. - + Include novel files Inclure les fichiers de roman - + Include note files Inclure les fichiers de notes - + Ignore export flag Ignorer le marqueur export - + Export Options Options d'exportation - + Replace tabs with spaces Remplacer les tabulations par des espaces - + Replace Unicode in HTML Remplacer l'Unicode par du HTML - + Build Preview Construire un aperçu - + Print Imprimer - + Print Preview Imprimer l'aperçu - + Print to PDF Imprimer en PDF - + Save As Enregistrer sous - + Open Document (.odt) Open Document (.odt) - + Flat Open Document (.fodt) Flat Open Document (.fodt) - + novelWriter HTML (.htm) HTML novelWriter (.htm) - + novelWriter Markdown (.nwd) Markdown novelWriter (.nwd) - + Standard Markdown (.md) Markdown standard (.md) - + GitHub Markdown (.md) Markdown GitHub (.md) - + JSON + novelWriter HTML (.json) JSON + HTML novelWriter (.json) - + JSON + novelWriter Markdown (.json) JSON + Markdown novelWriter (.json) - + Close Fermer - + Failed to generate preview. The result is too big. L'aperçu n'a pas été créé, le résultat est trop volumineux. - + There were problems when building the project Des problèmes ont été rencontrés en construisant le projet - + Open Document Open Document - + Flat Open Document Flat Open Document - + Plain HTML HTML classique - + novelWriter Markdown Markdown novelWriter - + Standard Markdown Markdown standard - + GitHub Markdown Markdown GitHub - + JSON + novelWriter HTML JSON + HTML novelWriter - + JSON + novelWriter Markdown JSON + Markdown novelWriter - + PDF PDF - + Save Document As Enregistrer le document sous - + Unknown format Format inconnu - + {0} file successfully written to: Fichier {0} écrit dans : - + Failed to write {0} file. {1} Erreur lors de l'écriture du fichier {0}. {1} @@ -780,17 +780,17 @@ GuiBuildNovelDocView - + This area will show the content of the document to be exported or printed. Press the "Build Preview" button to generate content. Dans cette zone s'affichera le contenu du document à exporter ou à imprimer. Utilisez le bouton "Construire l'aperçu" pour générer le contenu. - + Unknown Inconnu - + <b>Build Time:</b> {0} <b>Durée de construction :</b> {0} @@ -4092,142 +4092,142 @@ GuiWritingStats - + Writing Statistics Statistiques d'écriture - + Session Start Début de session - + Length Durée - + Idle Inactif - + Words Mots - + Histogram Histogramme - + Sum Totals Totaux - + Total Time: Temps total : - + Idle Time: Temps d'inactivité : - + Filtered Time: Temps après filtrage : - + Novel Word Count: Compte de mots du texte : - + Notes Word Count: Compte de mot des notes : - + Total Word Count: Compte de mots total : - + Filters Filtres - + Count novel files Compter les fichiers du roman - + Count note files Compter les fichiers de notes - + Hide zero word count Masquer les comptes de mots à zéro - + Hide negative word count Masquer les comptes de mots négatifs - + Group entries by day Regrouper par jour - + Show idle time Montrer le temps d'inactivité - + Word count cap for the histogram Compte de mots maximum dans l'histogramme - + Save As Enregistrer sous - + JSON Data File (.json) Fichier données JSON (.json) - + CSV Data File (.csv) Fichier données CSV (.csv) - + JSON Data File Fichier données JSON - + CSV Data File Fichier données CSV - + Save Data As Enregistrer ces données sous - + Failed to read session log file. Impossible de lire le fichier log de la session. @@ -4561,42 +4561,42 @@ ProjWizardCustomPage - + Custom Project Options Options personnalisées du projet - + Select which additional root folders to make, and how to populate the Novel folder. If you don't want to add chapters or scenes, set the values to 0. You can add scenes without chapters. Choisissez quels fichiers de base créer, et comment remplir iitialement le dossier Roman. Si vous ne voulez pas ajouter de chapitres ou de scènes, mettez les nombres à 0. Vous pouvez aussi ajouter des scènes sans mettre de chapitres. - + Additional Root Folders Dossiers de base supplémentaires - + {0} folder dossier {0} - + Populate Novel Folder Remplissage initial du dossier Roman - + Add chapters Ajouter des chapitres - + Scenes (per chapter) Scènes (par chapitre) - + Add chapter folders Ajouter des dossiers Chapitre @@ -4604,27 +4604,27 @@ ProjWizardFinalPage - + Finished Terminé - + All done. Tout est prêt. - + Press '{0}' to create the new project. Appuyez sur '{0}' pour créer le nouveau projet. - + Done Terminé - + Finish Terminer @@ -4632,22 +4632,22 @@ ProjWizardFolderPage - + Select Project Folder Définir le répertoire du projet - + Select a location to store the project. A new project folder will be created in the selected location. Choisir l'endroit où sera enregistré le projet. Un nouveau répertoire sera créé pour le projet à l'endroit spécifié. - + Required Obligatoire - + Project Path Chemin d'accès @@ -4655,47 +4655,47 @@ ProjWizardIntroPage - + Create New Project Créer un nouveau projet - + Provide at least a working title. The working title should not be change beyond this point as it is used by the application for generating file names for for instance backups. The other fields are optional and can be changed at any time in Project Settings. Donnez au moins un titre de travail. Ce titre de travail ne devrait plus être modifié ensuite car il sert de référence à l'application pour la création des noms de fichier, par exemple lors des sauvegardes. Les autres champs sont optionnels et peuvent être changés ultérieurement dans les paramètres du projet. - + Side image by {0}, {1} Image latérale de {0}, {1} - + Required Obligatoire - + Optional Optionnel - + Optional. One name per line. Optionnel. Un nom par ligne. - + Working Title Titre de travail - + Novel Title Titre du roman - + Author(s) Auteur(s) @@ -4703,27 +4703,27 @@ ProjWizardPopulatePage - + Populate Project Remplissage initial - + Choose how to pre-fill the project. Either with a minimal set of starter items, an example project explaining and showing many of the features, or show further custom options on the next page. Définissez comment pré-remplir le projet: avec un jeu minimal d'éléments de base, ou bien un exemple de projet expliquant et démontrant la plupart des possibilités, ou encore des options personnalisées à définir sur la page suivante. - + Fill the project with a minimal set of items Pré-remplir le projet avec un jeu minimal d'éléments - + Fill the project with example files Pré-remplir le projet avec des fichiers d'exemple - + Show detailed options for filling the project Définir des options personnalisées pour le pré-remplissage initial diff --git a/i18n/nw_nb_NO.ts b/i18n/nw_nb_NO.ts index 931a3671..6fee09e9 100644 --- a/i18n/nw_nb_NO.ts +++ b/i18n/nw_nb_NO.ts @@ -432,347 +432,347 @@ GuiBuildNovel - + Build Novel Project Bygg prosjektet - + Title Formats for Novel Files Tittelformater - + Formatting Codes: Formatteringskoder: - + {0} for the title as set in the document {0} for tittelen slik den er definert i dokumentet - + {0} for chapter number (1, 2, 3) {0} for kapittelnummer (1, 2, 3) - + {0} for chapter number as a word (one, two) {0} for kapittelnummer (én, to, tre) - + {0} for chapter number in upper case Roman {0} for kapittelnummer i store romertall - + {0} for chapter number in lower case Roman {0} for kapittelnummer i små romertall - + {0} for scene number within chapter {0} for scenenummer innad i kapitler - + {0} for scene number within novel {0} for scenenummer innad i boken - + Leave blank to skip this heading, or set to a static text, like for instance '{0}', to make a separator. The separator will be centred automatically and only appear between sections of the same type. La feltet stå tomt for å hoppe over overskriften, eller sett til en statisk tekst, slik som for eksempel '{0}', for å lage en separator. Separatoren vil bli sentrert automatisk, og bare satt inn mellom scener av samme type. - + Title Tittel - + Chapter Kapittel - + Unnumbered Unumrert - + Scene Scene - + Section Seksjon - + Font Options Skriftvalg - + Font family Skriftfamilie - + Font size Skriftstørrelse - + Line height Linjehøyde - + Justify text Rette marger - + Disable styling Slå av styling - + Include Options Inkluderinger - + Include synopsis Inkluder sammendrag - + Include comments Inkluder kommentarer - + Include keywords Inkluder kodeord - + Include body text Inkluder tekst - + File Filter Options Fil-filtre - + Include files with layouts other than 'Note'. Inkluder filer som ikke er notater. - + Include files with layout 'Note'. Inkluder filer som er notater. - + Ignore the 'Include when building project' setting and include all files in the output. Ignorer 'ta med ved eksport'-instilling og ta med alle filer i resultatet. - + Include novel files Inkluder romanfiler - + Include note files Inkluder notatfiler - + Ignore export flag Ignorer 'ta med'-flagg - + Export Options Eksportvalg - + Replace tabs with spaces Erstatt tab med mellomrom - + Replace Unicode in HTML Erstatt Unicode med HTML - + Build Preview Lag forhåndsvisning - + Print Skriv ut - + Print Preview Forhåndsvisning av utskrift - + Print to PDF Skriv ut til PDF - + Save As Lagre som - + Open Document (.odt) - + Flat Open Document (.fodt) - + novelWriter HTML (.htm) - + novelWriter Markdown (.nwd) - + Standard Markdown (.md) - + GitHub Markdown (.md) - + JSON + novelWriter HTML (.json) - + JSON + novelWriter Markdown (.json) - + Close Lukk - + Failed to generate preview. The result is too big. Kunne ikke generere forhåndsvisning. Resultatet er for stort til å vise. - + There were problems when building the project Det har oppstått en feil under byggingen av prosjektet - + Open Document - + Flat Open Document - + Plain HTML Enkel HTML - + novelWriter Markdown - + Standard Markdown - + GitHub Markdown - + JSON + novelWriter HTML - + JSON + novelWriter Markdown - + PDF - + Save Document As Lagre dokumentet som - + Unknown format Ukjent format - + {0} file successfully written to: Lagring av {0} var vellykket, og filen ble skrevet til: - + Failed to write {0} file. {1} Misslykkes i å skrive {0} til. {1} - + Styling Options Styling - + Language Språk - + Not Set Ikke satt @@ -780,17 +780,17 @@ GuiBuildNovelDocView - + This area will show the content of the document to be exported or printed. Press the "Build Preview" button to generate content. Dette området vil vise innholdet av dokumentet som skal eksporteres. Trykk på knappen merket med "Lag forhåndsvisning" for å oppdatere innholdet. - + Unknown Ukjent - + <b>Build Time:</b> {0} <b>Generert den:</b> {0} @@ -4092,142 +4092,142 @@ GuiWritingStats - + Writing Statistics Statistikk - + Session Start Starttid - + Length Lengde - + Idle Inaktiv - + Words Ord - + Histogram - + Sum Totals Totalsummer - + Total Time: Totaltid: - + Idle Time: Inaktiv tid: - + Filtered Time: Filtrert tid: - + Novel Word Count: Ord i roman: - + Notes Word Count: Ord i notater: - + Total Word Count: Ord totalt: - + Filters Filtre - + Count novel files Tell i romanfiler - + Count note files Tell i notatfiler - + Hide zero word count Skjul null-verdier - + Hide negative word count Skjul negative verdier - + Group entries by day Samle rader per dag - + Show idle time Vis inaktiv som tid - + Word count cap for the histogram Maks antall ord for histogram - + Save As Lagre som - + JSON Data File (.json) JSON-format (.json) - + CSV Data File (.csv) CSV-format (.csv) - + JSON Data File JSON-format - + CSV Data File CSV-format - + Failed to read session log file. Kunne ikke lese loggfil med skrive-statistikk. - + Save Data As Lagre data som @@ -4561,42 +4561,42 @@ ProjWizardCustomPage - + Custom Project Options Flere alternativer - + Select which additional root folders to make, and how to populate the Novel folder. If you don't want to add chapters or scenes, set the values to 0. You can add scenes without chapters. Velg hvilke mapper du ønsker i prosjektet, og hvordan du ønsker å fylle hovedmappen for boken. Hvis du ikke ønsker å legge til kapitler og scener, sett verdiene til 0. Du kan også legge til scener uten å legge til kapitler. - + Additional Root Folders Hovedmapper - + {0} folder {0} - + Populate Novel Folder Fyll roman-mappen - + Add chapters Legg til kapitler - + Scenes (per chapter) Scener (per kapittel) - + Add chapter folders Lag kapittel-mapper @@ -4604,27 +4604,27 @@ ProjWizardFinalPage - + Finished Ferdig - + All done. Alt er klart. - + Press '{0}' to create the new project. Trykk '{0}' for å opprette det nye prosjektet. - + Done - + Finish @@ -4632,22 +4632,22 @@ ProjWizardFolderPage - + Select Project Folder Velg prosjektmappe - + Select a location to store the project. A new project folder will be created in the selected location. Velg et sted hvor prosjektet skal lagres. En mappe for hele prosjektet vil bli opprettet her. - + Required Påkrevd - + Project Path Filbane @@ -4655,47 +4655,47 @@ ProjWizardIntroPage - + Create New Project Opprett nytt prosjekt - + Provide at least a working title. The working title should not be change beyond this point as it is used by the application for generating file names for for instance backups. The other fields are optional and can be changed at any time in Project Settings. Du må fylle inn minst en arbeidstittel. Du bør ikke endre arbeidstittelen etter at prosjektet er opprettet da denne brukes til blant annet filnavn for sikkerhetskopi. De andre feltene er valgfrie, og kan endres når som helst i Prosjektinstillinger. - + Side image by {0}, {1} Illustrasjon av {0}, {1} - + Required Påkrevd - + Optional Valgfritt - + Optional. One name per line. Valgfritt. Ett navn per linje. - + Working Title Arbeidstittel - + Novel Title Bokens tittel - + Author(s) Forfatter(e) @@ -4703,27 +4703,27 @@ ProjWizardPopulatePage - + Populate Project Fyll prosjektet - + Choose how to pre-fill the project. Either with a minimal set of starter items, an example project explaining and showing many of the features, or show further custom options on the next page. Velg hvordan du vil forhåndsfylle prosjektet. Du kan velge mellom et minimalt sett med mapper og filer, et eksempel-prosjekt som forklarer og viser hvordan du bruker programmet, eller se flere valg på neste side. - + Fill the project with a minimal set of items Fyll prosjektet med et minimalt innhold - + Fill the project with example files Fyll prosjektet med eksempelfiler - + Show detailed options for filling the project Vis detaljerte valg for å fylle prosjektet diff --git a/i18n/nw_pt.ts b/i18n/nw_pt.ts index b4f5cebd..2d199449 100644 --- a/i18n/nw_pt.ts +++ b/i18n/nw_pt.ts @@ -432,347 +432,347 @@ GuiBuildNovel - + Failed to generate preview. The result is too big. A geração do rascunho falhou. O resultado é muito grande. - + Open Document (.odt) Open Document (.odt) - + PDF PDF - + Plain HTML HTML Simples - + Unknown format Formato desconhecido - + novelWriter HTML (.htm) HTML do novelWriter (.htm) - + novelWriter Markdown (.nwd) Markdown do novelWriter (.nwd) - + JSON + novelWriter HTML JSON + HTML do novelWriter - + JSON + novelWriter Markdown (.json) JSON + Markdown do novelWriter (.json) - + Build Novel Project Construção do Projeto do Livro - + Title Formats for Novel Files Formatos de Título para Arquivos do Livro - + Title Título - + Chapter Capítulo - + Unnumbered Sem Numeração - + Section Seção - + Font family Família da fonte - + Font size Tamanho da fonte - + Justify text Texto justificado - + Disable styling Desabilita a estilização - + Include synopsis Inclui a sinopse - + Include comments Inclui comentários - + Include keywords Inclui palavras-chave - + Include body text Inclui o corpo do texto - + File Filter Options Opções de Filtro de Arquivos - + Ignore the 'Include when building project' setting and include all files in the output. Ignora a configuração 'Inclui quando estiver construindo o projeto' e inclui todos os arquivos no resultado. - + Include novel files Inclui arquivos do livro - + Include note files Inclui arquivos de notas - + Ignore export flag Ignora opção de exportação - + Export Options Opções de Exportação - + Replace tabs with spaces Substitui tabulações com espaços - + Print Imprimir - + Close Fechar - + Save Document As Salvar Documento Como - + {0} file successfully written to: Arquivo {0} escrito com sucesso para: - + Failed to write {0} file. {1} Falhou para escrever o arquivo {0}. {1} - + Build Preview Construir Prévia - + Print Preview Imprimir Prévia - + Print to PDF Imprimir para PDF - + Flat Open Document (.fodt) - + Standard Markdown (.md) Markdown Padrão (.md) - + GitHub Markdown (.md) Markdown do GitHub (.md) - + There were problems when building the project Houveram problemas ao construir o projeto - + Scene Cena - + Font Options Opções de Fonte - + Line height Altura da linha - + Include Options Opções de Inclusão - + Replace Unicode in HTML Substituir Unicode no HTML - + {0} for the title as set in the document {0} para o titulo como definido no documento - + {0} for chapter number (1, 2, 3) {0} para o numero do capítulo (1, 2, 3) - + {0} for chapter number as a word (one, two) {0} para o numero do capítulo por extenso (um, dois) - + {0} for chapter number in upper case Roman {0} para o número do capítulo em numerais romanos maiúsculos - + {0} for chapter number in lower case Roman {0} para o número do capítulo em numerais romanos minúsculos - + {0} for scene number within chapter {0} para o número da cena no capítulo - + {0} for scene number within novel {0} para o número da cena no livro - + Leave blank to skip this heading, or set to a static text, like for instance '{0}', to make a separator. The separator will be centred automatically and only appear between sections of the same type. Deixe em branco para ignorar este cabeçalho ou defina um texto estático como {0}, por exemplo, para fazer um separador. O separador será centralizado automaticamente a aparecerá apenas entre seções do mesmo tipo. - + Include files with layouts other than 'Note'. Inclui arquivos com leiautes diferentes de 'Nota'. - + Include files with layout 'Note'. Inclui arquivos com leiaute 'Nota'. - + Formatting Codes: Códigos de Formatação: - + Save As Salvar Como - + Open Document - + Flat Open Document - + novelWriter Markdown Markdown do novelWriter - + Standard Markdown Markdown Padrão - + GitHub Markdown Markdown do GitHub - + JSON + novelWriter HTML (.json) JSON + HTML do novelWriter (.json) - + JSON + novelWriter Markdown JSON + Markdown do novelWriter - + Styling Options Opções de Estilo - + Language Idioma - + Not Set Não definido @@ -780,17 +780,17 @@ GuiBuildNovelDocView - + Unknown Desconhecido - + This area will show the content of the document to be exported or printed. Press the "Build Preview" button to generate content. Esta área vai mostrar o conteúdo do documento a ser exportado ou impresso. Clique no botão "Construir Prévia" para gerar o conteúdo. - + <b>Build Time:</b> {0} <b>Tempo de Construção:</b> {0} @@ -4092,142 +4092,142 @@ GuiWritingStats - + JSON Data File (.json) Aruivo de Dados JSON (.json) - + CSV Data File (.csv) Arquivo de Dados CSV (.csv) - + Writing Statistics Estatísticas de Escrita - + Session Start Início da Sessão - + Length Tamanho - + Words Palavras - + Histogram Histograma - + Sum Totals Soma dos Totais - + Total Time: Tempo Total: - + Filtered Time: Tempo Filtrado: - + Novel Word Count: Contagem de Palavras do Livro: - + Notes Word Count: Contagem de Palavras das Notas: - + Total Word Count: Contagem Total de Palavras: - + Filters Filtros - + Count novel files Contagem dos arquivos do livro - + Count note files Contagem dos arquvos de notas - + Hide zero word count Ocultar contagem zerada de palavras - + Hide negative word count Ocultar contagem negativa de palavras - + Group entries by day Agrupar entradas por dia - + Word count cap for the histogram Limite de quantidade de palavras no histograma - + Save As Salvar Como - + Failed to read session log file. Houve uma falha ao ler o arquivo de log da sessão. - + Idle Ocioso - + Idle Time: Tempo Ocioso: - + Show idle time Mostrar tempo ocioso - + JSON Data File Aruivo de Dados JSON - + CSV Data File Arquivo de Dados CSV - + Save Data As Salvar Dados Como @@ -4561,42 +4561,42 @@ ProjWizardCustomPage - + Custom Project Options Opções Personalizadas do Projeto - + Select which additional root folders to make, and how to populate the Novel folder. If you don't want to add chapters or scenes, set the values to 0. You can add scenes without chapters. Selecione quais diretórios-raiz adicionais criar e como popular o diretório do livro. Se você não quiser adicionar capítulos ou cenas, deixe os valores em 0. Você pode adicionar cenas sem capítulos. - + Additional Root Folders Diretórios-raiz adicionais - + Populate Novel Folder Popular Diretório do Livro - + Add chapters Adicionar capítulos - + Scenes (per chapter) Cenas (por capítulo) - + Add chapter folders Adicionar diretórios de capítulo - + {0} folder Diretório {0} @@ -4604,27 +4604,27 @@ ProjWizardFinalPage - + Finished Finalizado - + All done. Tudo pronto. - + Done Pronto - + Finish Terminar - + Press '{0}' to create the new project. Pressione '{0}' para criar um novo projeto. @@ -4632,22 +4632,22 @@ ProjWizardFolderPage - + Select Project Folder Selecione o Diretório do Projeto - + Select a location to store the project. A new project folder will be created in the selected location. Selecione o local para armazenar o projeto. Um novo diretório será criado para o projeto no local selecionado. - + Required Obrigatório - + Project Path Caminho do projeto @@ -4655,47 +4655,47 @@ ProjWizardIntroPage - + Provide at least a working title. The working title should not be change beyond this point as it is used by the application for generating file names for for instance backups. The other fields are optional and can be changed at any time in Project Settings. Forneça pelo menos um nome de projeto. O nome do projeto não poderá ser modificado após esse ponto pois é utilizado pela aplicação para a geração de nomes de arquivos e para cópias de segurança. Os outros campos são opcionais e podem ser modificados a qualquer momento nas Configurações do Projeto. - + Side image by {0}, {1} Imagem ao lado por {0}, {1} - + Create New Project Criar um Projeto Novo - + Required Obrigatório - + Optional Opcional - + Optional. One name per line. Opcional. Um nome por linha. - + Working Title Nome do projeto - + Novel Title Nome do Livro - + Author(s) Autor(es) @@ -4703,27 +4703,27 @@ ProjWizardPopulatePage - + Populate Project Popular o Projeto - + Choose how to pre-fill the project. Either with a minimal set of starter items, an example project explaining and showing many of the features, or show further custom options on the next page. Escolha como pré-popular o projeto. escolha entre um conjunto mínimo de items iniciais, um projeto de exemplo explicando e mostrando várias das funcionalidades ou escolha opções personalizadas na próxima página. - + Fill the project with a minimal set of items Popular o projeto com um conjunto mínimo de items - + Fill the project with example files Popular o projeto com arquivos de exemplo - + Show detailed options for filling the project Mostrar opções detalhadas para popular o projeto diff --git a/novelWriter.pro b/novelWriter.pro index e0c1fe1f..de214cd1 100644 --- a/novelWriter.pro +++ b/novelWriter.pro @@ -11,7 +11,6 @@ SOURCES += \ nw/dialogs/projload.py \ nw/dialogs/projsettings.py \ nw/dialogs/wordlist.py \ - nw/gui/build.py \ nw/gui/custom.py \ nw/gui/doceditor.py \ nw/gui/docviewer.py \ @@ -22,10 +21,11 @@ SOURCES += \ nw/gui/outlinedetails.py \ nw/gui/projdetails.py \ nw/gui/projtree.py \ - nw/gui/projwizard.py \ nw/gui/statusbar.py \ nw/gui/theme.py \ - nw/gui/writingstats.py \ + nw/tools/build.py \ + nw/tools/projwizard.py \ + nw/tools/writingstats.py \ nw/common.py \ nw/constants.py \ nw/error.py \ diff --git a/nw/gui/__init__.py b/nw/gui/__init__.py index 26b1b1e0..eb87a87f 100644 --- a/nw/gui/__init__.py +++ b/nw/gui/__init__.py @@ -1,6 +1,5 @@ # -*- coding: utf-8 -*- -from nw.gui.build import GuiBuildNovel from nw.gui.doceditor import GuiDocEditor from nw.gui.docviewer import GuiDocViewer, GuiDocViewDetails from nw.gui.itemdetails import GuiItemDetails @@ -10,13 +9,10 @@ from nw.gui.outline import GuiOutline from nw.gui.outlinedetails import GuiOutlineDetails from nw.gui.projdetails import GuiProjectDetails from nw.gui.projtree import GuiProjectTree -from nw.gui.projwizard import GuiProjectWizard from nw.gui.statusbar import GuiMainStatus from nw.gui.theme import GuiTheme -from nw.gui.writingstats import GuiWritingStats __all__ = [ - "GuiBuildNovel", "GuiDocEditor", "GuiDocViewDetails", "GuiDocViewer", @@ -28,7 +24,5 @@ __all__ = [ "GuiOutlineDetails", "GuiProjectDetails", "GuiProjectTree", - "GuiProjectWizard", "GuiTheme", - "GuiWritingStats", ] diff --git a/nw/guimain.py b/nw/guimain.py index ae93ef88..300c00a7 100644 --- a/nw/guimain.py +++ b/nw/guimain.py @@ -39,15 +39,15 @@ from PyQt5.QtWidgets import ( ) from nw.gui import ( - GuiBuildNovel, GuiDocEditor, GuiDocViewDetails, GuiDocViewer, - GuiItemDetails, GuiMainMenu, GuiMainStatus, GuiNovelTree, GuiOutline, - GuiOutlineDetails, GuiProjectDetails, GuiProjectTree, GuiProjectWizard, - GuiTheme, GuiWritingStats + GuiDocEditor, GuiDocViewDetails, GuiDocViewer, GuiItemDetails, GuiMainMenu, + GuiMainStatus, GuiNovelTree, GuiOutline, GuiOutlineDetails, + GuiProjectDetails, GuiProjectTree, GuiTheme ) from nw.dialogs import ( GuiAbout, GuiDocMerge, GuiDocSplit, GuiItemEditor, GuiPreferences, GuiProjectLoad, GuiProjectSettings, GuiWordList ) +from nw.tools import GuiBuildNovel, GuiProjectWizard, GuiWritingStats from nw.core import NWProject, NWDoc, NWIndex from nw.enum import nwItemType, nwItemClass, nwAlert, nwWidget from nw.common import getGuiItem, hexToInt diff --git a/nw/tools/__init__.py b/nw/tools/__init__.py new file mode 100644 index 00000000..18d825d2 --- /dev/null +++ b/nw/tools/__init__.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- + +from nw.tools.build import GuiBuildNovel +from nw.tools.projwizard import GuiProjectWizard +from nw.tools.writingstats import GuiWritingStats + +__all__ = [ + "GuiBuildNovel", + "GuiProjectWizard", + "GuiWritingStats", +] diff --git a/nw/gui/build.py b/nw/tools/build.py similarity index 100% rename from nw/gui/build.py rename to nw/tools/build.py diff --git a/nw/gui/projwizard.py b/nw/tools/projwizard.py similarity index 100% rename from nw/gui/projwizard.py rename to nw/tools/projwizard.py diff --git a/nw/gui/writingstats.py b/nw/tools/writingstats.py similarity index 100% rename from nw/gui/writingstats.py rename to nw/tools/writingstats.py diff --git a/tests/test_gui/test_gui_build.py b/tests/test_tools/test_tools_build.py similarity index 98% rename from tests/test_gui/test_gui_build.py rename to tests/test_tools/test_tools_build.py index 863cf823..5cf6a8ef 100644 --- a/tests/test_gui/test_gui_build.py +++ b/tests/test_tools/test_tools_build.py @@ -29,14 +29,14 @@ from tools import cmpFiles, getGuiItem from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QAction, QMessageBox, QFileDialog -from nw.gui import GuiBuildNovel +from nw.tools import GuiBuildNovel keyDelay = 2 typeDelay = 1 stepDelay = 20 @pytest.mark.gui -def testGuiBuild_Tool(qtbot, monkeypatch, nwGUI, nwLipsum, refDir, outDir): +def testToolBuild_Main(qtbot, monkeypatch, nwGUI, nwLipsum, refDir, outDir): """Test the build tool. """ # Block message box @@ -251,4 +251,4 @@ def testGuiBuild_Tool(qtbot, monkeypatch, nwGUI, nwLipsum, refDir, outDir): # qtbot.stopForInteraction() -# END Test testGuiBuild_Tool +# END Test testToolBuild_Main diff --git a/tests/test_gui/test_gui_projwizard.py b/tests/test_tools/test_tools_projwizard.py similarity index 96% rename from tests/test_gui/test_gui_projwizard.py rename to tests/test_tools/test_tools_projwizard.py index 02f7b00a..52ab91ff 100644 --- a/tests/test_gui/test_gui_projwizard.py +++ b/tests/test_tools/test_tools_projwizard.py @@ -29,11 +29,10 @@ from tools import getGuiItem from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QFileDialog, QWizard, QMessageBox -from nw.gui import GuiProjectWizard from nw.enum import nwItemClass -from nw.gui.projwizard import ( - ProjWizardIntroPage, ProjWizardFolderPage, ProjWizardPopulatePage, - ProjWizardCustomPage, ProjWizardFinalPage +from nw.tools.projwizard import ( + GuiProjectWizard, ProjWizardIntroPage, ProjWizardFolderPage, + ProjWizardPopulatePage, ProjWizardCustomPage, ProjWizardFinalPage ) keyDelay = 2 @@ -41,7 +40,7 @@ typeDelay = 1 stepDelay = 20 @pytest.mark.gui -def testGuiProjectWizard_Main(qtbot, monkeypatch, nwGUI, nwMinimal): +def testToolProjectWizard_Main(qtbot, monkeypatch, nwGUI, nwMinimal): """Test the new project wizard. """ # Block message box @@ -227,4 +226,4 @@ def testGuiProjectWizard_Main(qtbot, monkeypatch, nwGUI, nwMinimal): # qtbot.stopForInteraction() -# END Test testGuiProjectWizard_Main +# END Test testToolProjectWizard_Main diff --git a/tests/test_gui/test_gui_writingstats.py b/tests/test_tools/test_tools_writingstats.py similarity index 99% rename from tests/test_gui/test_gui_writingstats.py rename to tests/test_tools/test_tools_writingstats.py index bf5a9691..c72de22c 100644 --- a/tests/test_gui/test_gui_writingstats.py +++ b/tests/test_tools/test_tools_writingstats.py @@ -30,7 +30,7 @@ from dummy import causeOSError from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QAction, QFileDialog, QMessageBox -from nw.gui import GuiWritingStats +from nw.tools import GuiWritingStats from nw.constants import nwFiles keyDelay = 2 @@ -38,7 +38,7 @@ typeDelay = 1 stepDelay = 20 @pytest.mark.gui -def testGuiWritingStats_Dialog(qtbot, monkeypatch, nwGUI, fncDir, fncProj): +def testToolWritingStats_Main(qtbot, monkeypatch, nwGUI, fncDir, fncProj): """Test the full writing stats tool. """ # Block message box @@ -428,4 +428,4 @@ def testGuiWritingStats_Dialog(qtbot, monkeypatch, nwGUI, fncDir, fncProj): assert nwGUI.closeProject() qtbot.wait(stepDelay) -# END Test testGuiWritingStats_Dialog +# END Test testToolWritingStats_Main From b698ccbc1d982566b8852b644beb9988969b0c0b Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Fri, 23 Apr 2021 21:49:20 +0200 Subject: [PATCH 5/6] Move qutae symbol dialog source file to the dialogs folder --- i18n/nw_en_US.ts | 270 +++++++++--------- i18n/nw_fr.ts | 270 +++++++++--------- i18n/nw_nb_NO.ts | 270 +++++++++--------- i18n/nw_pt.ts | 270 +++++++++--------- nw/dialogs/__init__.py | 2 + nw/dialogs/preferences.py | 5 +- nw/dialogs/quotes.py | 133 +++++++++ nw/gui/custom.py | 109 +------ .../test_dlg_dialogs.py} | 8 +- tests/test_dialogs/test_dlg_preferences.py | 7 +- 10 files changed, 690 insertions(+), 654 deletions(-) create mode 100644 nw/dialogs/quotes.py rename tests/{test_gui/test_gui_dialogs.py => test_dialogs/test_dlg_dialogs.py} (90%) diff --git a/i18n/nw_en_US.ts b/i18n/nw_en_US.ts index f3318731..404338ef 100644 --- a/i18n/nw_en_US.ts +++ b/i18n/nw_en_US.ts @@ -2762,47 +2762,47 @@ GuiPreferences - + Preferences - + General - + Projects - + Documents - + Editor - + Highlighting - + Automation - + Some changes will not be applied until novelWriter has been restarted. - + Quotes @@ -2810,107 +2810,107 @@ GuiPreferencesAutomation - + Automatic Features - + Auto-select word under cursor - + Apply formatting to word under cursor if no selection is made. - + Auto-replace text as you type - + Allow the editor to replace symbols as you type. - + Replace as You Type - + Auto-replace single quotes - + Try to guess which is an opening or a closing single quote. - + Auto-replace double quotes - + Try to guess which is an opening or a closing double quote. - + Auto-replace dashes - + Double and triple hyphens become short and long dashes. - + Auto-replace dots - + Three consecutive dots become ellipsis. - + Automatic Padding - + Insert non-breaking space before - + Insert non-breaking space after - + Use thin space instead - + Automatically add space before any of these symbols. - + Automatically add space after any of these symbols. - + Inserts a thin space instead of a regular space. @@ -2918,107 +2918,107 @@ GuiPreferencesDocuments - + Text Style - + Font family - + Font for the document editor and viewer. - + Font size - + Font size for the document editor and viewer. - + pt - + Text Flow - + Maximum text width in "Normal Mode" - + Horizontal margins are scaled automatically. - + px - + Maximum text width in "Focus Mode" - + Disable maximum text width in "Normal Mode" - + Text width is defined by the margins only. - + Hide document footer in "Focus Mode" - + Hide the information bar at the bottom of the document. - + Justify the text margins in editor and viewer - + Lay out text with straight edges in the editor and viewer. - + Text margin - + If maximum width is set, this becomes the minimum margin. - + Tab width - + The width of a tab key press in the editor and viewer. @@ -3026,127 +3026,127 @@ GuiPreferencesEditor - + Spell Checking - + Internal - + Spell check provider - + Note that the internal spell check tool is quite slow. - + Spell check language - + Available languages are determined by your system. - + Big document limit - + Full spell checking is disabled above this limit. - + kB - + Word Count - + Word count interval - + How often the word count is updated. - + seconds - + Writing Guides - + Show tabs and spaces - + Add symbols to indicate tabs and spaces in the editor. - + Show line endings - + Add a symbol to indicate line endings in the editor. - + Scroll Behaviour Scroll Behavior - + Scroll past end of the document - + Also improves trypewriter scrolling for short documents. - + Typewriter style scrolling when you type - + Try to keep the cursor at a fixed vertical position. - + Minimum position for Typewriter scrolling - + Percentage of the editor height from the top. @@ -3154,82 +3154,82 @@ GuiPreferencesGeneral - + Look and Feel - + Main GUI language - + Changing this requires restarting novelWriter. - + Main GUI theme - + Main icon theme - + Prefer icons for dark backgrounds - + May improve the look of icons on dark themes. - + Font family - + Font size - + pt - + GUI Settings - + Show full path in document header - + Add the parent folder names to the header. - + Hide vertical scroll bars in main windows - + Scrolling available with mouse wheel and keys only. - + Hide horizontal scroll bars in main windows @@ -3237,107 +3237,107 @@ GuiPreferencesProjects - + Automatic Save - + Save document interval - + How often the open document is automatically saved. - + seconds - + Save project interval - + How often the open project is automatically saved. - + Project Backup - + Browse - + Backup storage location - + Path: {0} - + Run backup when the project is closed - + Can be overridden for individual projects in Project Settings. - + Ask before running backup - + If off, backups will run in the background. - + Session Timer - + Pause the session timer when not writing - + Also pauses when the application window does not have focus. - + Editor inactive time before pausing timer - + User activity includes typing and changing the content. - + minutes - + Backup Directory @@ -3345,47 +3345,47 @@ GuiPreferencesQuotes - + Quotation Style - + Single quote open style - + The symbol to use for a leading single quote. - + Single quote close style - + The symbol to use for a trailing single quote. - + Double quote open style - + The symbol to use for a leading double quote. - + Double quote close style - + The symbol to use for a trailing double quote. @@ -3393,67 +3393,67 @@ GuiPreferencesSyntax - + Highlighting Theme - + Highlighting theme - + Colour theme to apply to the editor and viewer. Color theme to apply to the editor and viewer. - + Quotes & Dialogue - + Highlight text wrapped in quotes - + Applies to single, double and straight quotes. - + Allow open-ended single quotes - + Highlight single-quoted line with no closing quote. - + Allow open-ended double quotes - + Highlight double-quoted line with no closing quote. - + Text Emphasis - + Add highlight colour to emphasised text Add highlight color to emphasised text - + Applies to emphasis (italic) and strong (bold). diff --git a/i18n/nw_fr.ts b/i18n/nw_fr.ts index 2dfc6310..8761c05d 100644 --- a/i18n/nw_fr.ts +++ b/i18n/nw_fr.ts @@ -2762,47 +2762,47 @@ GuiPreferences - + Preferences Préférences - + General Général - + Projects Projets - + Documents Documents - + Editor Éditeur - + Highlighting Mise en évidence - + Automation Automation - + Some changes will not be applied until novelWriter has been restarted. Certains changements ne seront effectifs qu'après un redémarrage de novelWriter. - + Quotes Guillemets @@ -2810,107 +2810,107 @@ GuiPreferencesAutomation - + Automatic Features Automatismes - + Auto-select word under cursor Auto-sélection du mot sous le curseur - + Apply formatting to word under cursor if no selection is made. En l'absence de texte sélectionné la mise en forme s'applique au mot sous le curseur. - + Auto-replace text as you type Auto-remplacement par la frappe - + Allow the editor to replace symbols as you type. Permet à l'éditeur de remplacer les symboles au fur et à mesure de la frappe. - + Replace as You Type Remplacement par la frappe - + Auto-replace single quotes Auto-remplacement des guillemets simples - + Try to guess which is an opening or a closing single quote. Tenter de deviner si un guillemet simple est ouvrant ou fermant. - + Auto-replace double quotes Auto-remplacement des guillemets doubles - + Try to guess which is an opening or a closing double quote. Tenter de deviner si un guillemet double est ouvrant ou fermant. - + Auto-replace dashes Auto-remplacemet des tirets - + Double and triple hyphens become short and long dashes. Deux ou trois tirets successifs deviennent des tirets moyens (semi-cadratin) ou longs (cadratins). - + Auto-replace dots Auto-remplacement des points - + Three consecutive dots become ellipsis. Trois points consécutifs deviennent des points de suspension. - + Automatic Padding Insertion automatique - + Insert non-breaking space before Espace insécable avant - + Insert non-breaking space after Espace insécable après - + Use thin space instead Utiliser des espaces fines - + Automatically add space before any of these symbols. Ajouter lors de la frappe une espace avant chacun de ces caractères. - + Automatically add space after any of these symbols. Ajouter lors de la frappe une espace après chacun de ces caractères. - + Inserts a thin space instead of a regular space. Insérer une espace fine au lieu d'une espace-mot. @@ -2918,107 +2918,107 @@ GuiPreferencesDocuments - + Text Style Style du texte - + Font family Police de caractères - + Font for the document editor and viewer. Police pour l'éditeur et l'afficheur de document. - + Font size Taille de police - + Font size for the document editor and viewer. Taille de la police pour l'éditeur et l'afficheur de document. - + pt pt - + Text Flow Déroulement du texte - + Maximum text width in "Normal Mode" Largeur maximale du texte en mode "normal" - + Horizontal margins are scaled automatically. Les marges horizontales sont ajustées automatiquement. - + px px - + Maximum text width in "Focus Mode" Largeur maximale du texte en mode "sans distraction" - + Disable maximum text width in "Normal Mode" Oublier la largeur maximale en mode "normal" - + Text width is defined by the margins only. La largeur du texte est définie uniquement par les marges. - + Hide document footer in "Focus Mode" Masquer le bas de page en mode "sans distraction" - + Hide the information bar at the bottom of the document. Ne pas afficher la barre d'informations sous le document. - + Justify the text margins in editor and viewer Justifier aux marges dans l'éditeur et l'afficheur - + Lay out text with straight edges in the editor and viewer. Aligner le texte avec des bords droits aux marges droite et gauche dans l'éditeur et l'afficheur. - + Text margin Marge de texte - + If maximum width is set, this becomes the minimum margin. Si une largeur maximale est définie, ceci devient la marge minimale. - + Tab width Largeur des tabulations - + The width of a tab key press in the editor and viewer. La largeur résultant d'un appui sur la touche de tabulation dans l'éditeur et l'afficheur. @@ -3026,127 +3026,127 @@ GuiPreferencesEditor - + Spell Checking Vérification orthographique - + Internal Interne - + Spell check provider Vérificateur - + Note that the internal spell check tool is quite slow. Veuillez noter que la vérification interne est plutôt lente. - + Spell check language Langue à vérifier - + Available languages are determined by your system. Les langues disponibles dépendent de votre système. - + Big document limit Taille maximale de document - + Full spell checking is disabled above this limit. La vérification compléte est désactivée au dessus de cette limite. - + kB ko - + Word Count Compteur de mots - + Word count interval Intervalle de comptage - + How often the word count is updated. Indique à quelle fréquence le compteur est mis à jour. - + seconds secondes - + Writing Guides Aides à l'écriture - + Show tabs and spaces Montrer les tabulations et les espaces - + Add symbols to indicate tabs and spaces in the editor. Dans l'éditeur un symbole montre l'emplacement des tabulations et des espaces. - + Show line endings Montrer les fins de lignes - + Add a symbol to indicate line endings in the editor. Dans l'éditeur un symbole montre l'emplacement des fins de lignes. - + Scroll Behaviour Défilement du texte - + Scroll past end of the document Le défilement dépasse la fin du document - + Also improves trypewriter scrolling for short documents. Améliore également le défilement machine à écrire pour les documents courts. - + Typewriter style scrolling when you type Défilement de machine à écrire - + Try to keep the cursor at a fixed vertical position. L'éditeur essaye de conserver le curseur à la même position verticale. - + Minimum position for Typewriter scrolling Position minimale en mode machine à écrire - + Percentage of the editor height from the top. En pourcentage de la hauteur de la fenêtre depuis le haut. @@ -3154,82 +3154,82 @@ GuiPreferencesGeneral - + Look and Feel Apparence - + Main GUI language Langue de l'interface - + Changing this requires restarting novelWriter. Un changement ne sera pris en compte qu'après le redémarrage de novelWriter. - + Main GUI theme Thème de l'interface - + Main icon theme Thème des icônes - + Prefer icons for dark backgrounds Préférer les icônes pour fonds sombres - + May improve the look of icons on dark themes. Améliore l'apparence des icônes dans les thèmes sombres. - + Font family Police de caractères - + Font size Taille de police - + pt pt - + GUI Settings Paramètres de l'interface - + Show full path in document header Montrer le chemin complet dans l'en-tête du document - + Add the parent folder names to the header. Ajouter les noms des dossiers parents dans l'en-tête. - + Hide vertical scroll bars in main windows Masquer les barres de défilement verticales dans les fenêtres principales - + Scrolling available with mouse wheel and keys only. Le défilement ne pourra se faire que par la molette de la souris et les touches du clavier. - + Hide horizontal scroll bars in main windows Masquer les barres de défilement horizontales dans les fenêtres principales @@ -3237,107 +3237,107 @@ GuiPreferencesProjects - + Automatic Save Enregistrement automatique - + Save document interval Intervalle d'enregistrement - + How often the open document is automatically saved. Indique à quelle fréquence le document ouvert est automatiquement enregistré. - + seconds secondes - + Save project interval Intervalle d'enregistrement du projet - + How often the open project is automatically saved. Indique à quelle fréquence le projet ouvert est automatiquement enregistré. - + Project Backup Sauvegarde du projet - + Browse Parcourir - + Backup storage location Emplacement de sauvegarde du projet - + Path: {0} Chemin : {0} - + Run backup when the project is closed Sauvegarder à la fermeture du projet - + Can be overridden for individual projects in Project Settings. Peut être invalidé pour des projets spécifiques dans leurs paramètres. - + Ask before running backup Demander avant de sauvegarder - + If off, backups will run in the background. Si désactivé, les sauvegardes seront effectuées en arrière-plan. - + Session Timer Chronomètre de session - + Pause the session timer when not writing Arrêter le chronomètre quand on n'écrit pas - + Also pauses when the application window does not have focus. Arrêter également lorsque la fenêtre de l'application n'a pas le focus. - + Editor inactive time before pausing timer Durée d'inactivité de l'éditeur avant la mise en pause du chronomètre - + User activity includes typing and changing the content. L'activité de l'utilisateur inclut la frappe et la modification du contenu. - + minutes minutes - + Backup Directory Répertoire de sauvegarde @@ -3345,47 +3345,47 @@ GuiPreferencesQuotes - + Quotation Style Style de guillemets - + Single quote open style Guillemets simples ouvrants - + The symbol to use for a leading single quote. Symbole à utiliser pour un guillemet simple ouvrant. - + Single quote close style Guillemets simples fermants - + The symbol to use for a trailing single quote. Symbole à utiliser pour un guillemet simple fermant. - + Double quote open style Guillemets doubles ouvrants - + The symbol to use for a leading double quote. Symbole à utiliser pour un guillemet double ouvrant. - + Double quote close style Guillemets doubles fermants - + The symbol to use for a trailing double quote. Symbole à utiliser pour un guillemet double fermant. @@ -3393,67 +3393,67 @@ GuiPreferencesSyntax - + Highlighting Theme Thème de mise en évidence - + Highlighting theme Thème de mise en évidence - + Colour theme to apply to the editor and viewer. Thème de couleurs à utiliser dans l'éditeur et l'afficheur. - + Quotes & Dialogue Dialogues et citations - + Highlight text wrapped in quotes Mettre en évidence le texte situé entre des guillemets - + Applies to single, double and straight quotes. S'applique aux guillemets simples, doubles, et droits. - + Allow open-ended single quotes Autoriser les guillemets simples non fermés - + Highlight single-quoted line with no closing quote. Mettre en évidence les lignes avec guillemet simple ouvrant et non fermées. - + Allow open-ended double quotes Autoriser les guillemets doubles non fermés - + Highlight double-quoted line with no closing quote. Mettre en évidence les lignes avec guillemet double ouvrant et non fermées. - + Text Emphasis Texte appuyé - + Add highlight colour to emphasised text Mettre en évidence le texte appuyé - + Applies to emphasis (italic) and strong (bold). S'applique au texte en caractères italiques ou gras. diff --git a/i18n/nw_nb_NO.ts b/i18n/nw_nb_NO.ts index 6fee09e9..d27e4cfa 100644 --- a/i18n/nw_nb_NO.ts +++ b/i18n/nw_nb_NO.ts @@ -2762,47 +2762,47 @@ GuiPreferences - + Preferences Innstillinger - + General Generelt - + Projects Prosjekt - + Documents Dokument - + Editor Editor - + Highlighting Fremheving - + Automation Automasjon - + Some changes will not be applied until novelWriter has been restarted. Noen endringer vil ikke tas i bruk før neste gang novelWriter startes. - + Quotes Sitattegn @@ -2810,107 +2810,107 @@ GuiPreferencesAutomation - + Automatic Features Automatiske funksjoner - + Auto-select word under cursor Auto-velg ord under markør - + Apply formatting to word under cursor if no selection is made. Hvis ingen tekst er valgt, formatter ordet hvor markøren står. - + Auto-replace text as you type Erstatt mens du skriver - + Allow the editor to replace symbols as you type. La editoren erstatte symboler mens du skriver. - + Replace as You Type Erstatt mens du skriver - + Auto-replace single quotes Erstatt enkle sitattegn - + Try to guess which is an opening or a closing single quote. Forsøker å gjette hva som er venstre og høyre tegn. - + Auto-replace double quotes Erstatt doble sitattegn - + Try to guess which is an opening or a closing double quote. Forsøker å gjette hva som er venstre og høyre tegn. - + Auto-replace dashes Erstatt bindestreker - + Double and triple hyphens become short and long dashes. To og tre bindestreker erstattes med kort og lang bindestrek. - + Auto-replace dots Erstatt tre punktum - + Three consecutive dots become ellipsis. Tre punktum på rad erstattes med ellipsis. - + Automatic Padding Automatisk mellomrom - + Insert non-breaking space before Sett inn hardt mellomrom foran - + Insert non-breaking space after Sett inn hardt mellomrom etter - + Use thin space instead Bruk tynt mellomrom istedet - + Automatically add space before any of these symbols. Legg til mellomrom automatisk foran disse tegnene. - + Automatically add space after any of these symbols. Legg til mellomrom automatisk etter disse tegnene. - + Inserts a thin space instead of a regular space. Sett inn et tynt mellomrom istedenfor et vanlig et. @@ -2918,107 +2918,107 @@ GuiPreferencesDocuments - + Text Style Tekststil - + Font family Skriftfamilie - + Font for the document editor and viewer. Skrifttype til bruk for editor og visning. - + Font size Skriftstørrelse - + Font size for the document editor and viewer. Skriftstørrelse til bruk for editor og visning. - + pt - + Text Flow Tekstflyt - + Maximum text width in "Normal Mode" Maks tekstbredde i "Normal-modues" - + Horizontal margins are scaled automatically. Horisontale marger skalerer da automatisk. - + px - + Maximum text width in "Focus Mode" Maks tekstbredde i "Fokus-modues" - + Disable maximum text width in "Normal Mode" Slå av maks tekstbredde i "Normal-modus" - + Text width is defined by the margins only. Tekstbredden er kun definert av margene. - + Hide document footer in "Focus Mode" Gjem dokumentets bunnlinje i "Fokus-modus" - + Hide the information bar at the bottom of the document. Gjemmer informasjonslinja i bunnen av dokumentet. - + Justify the text margins in editor and viewer Bruk justerte marger i editor og visning - + Lay out text with straight edges in the editor and viewer. Justerte marger gir rette linjeender i avsnitt. - + Text margin Marger - + If maximum width is set, this becomes the minimum margin. Hvis tekstbredde er satt, så blir dette istedet minste marger. - + Tab width Tabulatorens bredde - + The width of a tab key press in the editor and viewer. Hvor langt tabulatoren hopper i editor og visning. @@ -3026,127 +3026,127 @@ GuiPreferencesEditor - + Spell Checking Stavekontroll - + Internal Intern - + Spell check provider Verktøy for stavekontroll - + Note that the internal spell check tool is quite slow. Merk at den interne stavekontrollen er ganske treg. - + Spell check language Språk for stavekontroll - + Available languages are determined by your system. Tilgjengelige språk hentes fra operativystemet ditt. - + Big document limit Grense for store dokumenter - + Full spell checking is disabled above this limit. Automatisk stavekontroll slås av over grensen. - + kB - + Word Count Telling av ord - + Word count interval Telle-intervall - + How often the word count is updated. Hvor ofte antall ord blir oppdatert. - + seconds sekunder - + Writing Guides Hjelpesymboler - + Show tabs and spaces Synlige tabulatorer og mellomrom - + Add symbols to indicate tabs and spaces in the editor. Viser symboler for å indikere disse i editoren. - + Show line endings Synlige linjeender - + Add a symbol to indicate line endings in the editor. Viser symbol for å indikere dette i editoren. - + Scroll Behaviour Rullefelt - + Scroll past end of the document Tillat å rulle forbi slutten av dokumentet - + Also improves trypewriter scrolling for short documents. Forbedrer funksjonen til skrivemaskin-rulling. - + Typewriter style scrolling when you type Skrivemaskin-liknende rulling mens du skriver - + Try to keep the cursor at a fixed vertical position. Prøver å holde markøren på samme sted vertikalt. - + Minimum position for Typewriter scrolling Minste avstand for skrivemaskin-rulling - + Percentage of the editor height from the top. I prosent fra toppen av editor-vinduet. @@ -3154,82 +3154,82 @@ GuiPreferencesGeneral - + Look and Feel Utseende - + Main GUI theme Fargetema - + Changing this requires restarting novelWriter. Endring av dette krever omstart av novelWriter. - + Main icon theme Ikon-tema - + Prefer icons for dark backgrounds Foretrekk ikoner for mørk bakgrunn - + May improve the look of icons on dark themes. Kan forbedre utseende på mørke temaer. - + Font family Skriftfamilie - + Font size Skriftstørrelse - + pt - + GUI Settings Brukergrensesnitt - + Show full path in document header Vis full prosjektbane i dokumenthoder - + Add the parent folder names to the header. Legger til mappene foran dokumentets navn. - + Hide vertical scroll bars in main windows Skjul vertikale rullefelt i hovedvinduer - + Scrolling available with mouse wheel and keys only. Rulling kan bare gjøres med mus og tastatur. - + Hide horizontal scroll bars in main windows Skjul horisontale rullefelt i hovedvinduer - + Main GUI language Programspråk @@ -3237,107 +3237,107 @@ GuiPreferencesProjects - + Automatic Save Automatisk lagring - + Save document interval Interval for lagring av dokument - + How often the open document is automatically saved. Hvor ofte det åpne dokumentet lagres automatisk. - + seconds sekunder - + Save project interval Interval for lagring av prosjekt - + How often the open project is automatically saved. Hvor ofte det åpne prosjektet lagres automatisk. - + Project Backup Sikkerhetskopi - + Browse Bla - + Backup storage location Filbane for sikkerhetskopi - + Path: {0} Filbane: {0} - + Run backup when the project is closed Lag sikkerhetskopi når prosjektet lukkes - + Can be overridden for individual projects in Project Settings. Kan overstyres fra individuelle prosjektinnstillinger. - + Ask before running backup Spør før sikkerhetskopi tas - + If off, backups will run in the background. Hvis avslått, tas sikkerhetskopi automatisk. - + Session Timer Sesjons-klokke - + Pause the session timer when not writing Sett klokka på pause når du er inaktiv - + Also pauses when the application window does not have focus. Pauses også når du ikke jobber i applikasjonens vindu. - + Editor inactive time before pausing timer Tid uten skriving før klokka settes på pause - + User activity includes typing and changing the content. Dette måler kun endringer i teksteditoren. - + minutes minutter - + Backup Directory Mappe for sikkerhetskopi @@ -3345,47 +3345,47 @@ GuiPreferencesQuotes - + Quotation Style Sitattegn - + Single quote open style Enkelt sitat, venstre side - + The symbol to use for a leading single quote. Symbol for enkelt sitattegn før et sitat. - + Single quote close style Enkelt sitat, høyre side - + The symbol to use for a trailing single quote. Symbol for enkelt sitattegn etter et sitat. - + Double quote open style Dobbelt sitat, venstre side - + The symbol to use for a leading double quote. Symbol for dobbelt sitattegn før et sitat. - + Double quote close style Dobbelt sitat, høyre side - + The symbol to use for a trailing double quote. Symbol for dobbelt sitattegn etter et sitat. @@ -3393,67 +3393,67 @@ GuiPreferencesSyntax - + Highlighting Theme Syntaksfremheving - + Highlighting theme Fremhevingstema - + Colour theme to apply to the editor and viewer. Fargetema for editor og visning. - + Quotes & Dialogue Sitattegn & dialog - + Highlight text wrapped in quotes Fremhev tekst mellom sitattegn - + Applies to single, double and straight quotes. Gjelder enkle, doble og rette sitattegn. - + Allow open-ended single quotes Tillat enkle sitattegn som ikke lukkes - + Highlight single-quoted line with no closing quote. Fremhev sitater som ikke er lukket i samme avsnitt. - + Allow open-ended double quotes Tillat doble sitattegn som ikke lukkes - + Highlight double-quoted line with no closing quote. Fremhev sitater som ikke er lukket i samme avsnitt. - + Text Emphasis Fremheving av tekst - + Add highlight colour to emphasised text Fremhev formattert tekst - + Applies to emphasis (italic) and strong (bold). Gjelder kursiv og fet tekst. diff --git a/i18n/nw_pt.ts b/i18n/nw_pt.ts index 2d199449..ec69bf37 100644 --- a/i18n/nw_pt.ts +++ b/i18n/nw_pt.ts @@ -2762,47 +2762,47 @@ GuiPreferences - + Some changes will not be applied until novelWriter has been restarted. Algumas alterações não serão aplicadas enquanto a aplicação não for reiniciada. - + Preferences Preferências - + General Geral - + Projects Projetos - + Editor Editor - + Documents Documentos - + Highlighting Destaque - + Automation Automação - + Quotes Citações @@ -2810,107 +2810,107 @@ GuiPreferencesAutomation - + Automatic Features Funcionalidades Automáticas - + Auto-select word under cursor Selecionar automaticamente a palavra sob o cursor - + Apply formatting to word under cursor if no selection is made. Aplicar a formatação à palavra sob o cursor se nenhuma seleção for feita. - + Auto-replace text as you type Substituir automaticamente o texto enquanto digita - + Allow the editor to replace symbols as you type. Permite que o editor substituia símbolos emquanto você digita. - + Replace as You Type Substituição Durante a Digitação - + Auto-replace single quotes Substituir automaticamente aspas simples - + Try to guess which is an opening or a closing single quote. Tenta adivinhar se a aspa simples é de abertura ou de fechamento. - + Auto-replace double quotes Subsitituir automaticamente aspas duplas - + Try to guess which is an opening or a closing double quote. Tenta adivinhar se a aspa dupla é de abertura ou de fechamento. - + Auto-replace dashes Substituir automaticamente os travessões - + Double and triple hyphens become short and long dashes. Hífens duplos ou triplos se tornam travessões curtos ou longos. - + Auto-replace dots Substituir automaticamente os pontos - + Three consecutive dots become ellipsis. Três pontos consecutivos se tornam uma reticência. - + Automatic Padding Espaçamento Automático - + Insert non-breaking space before Insere um espaço não-separável antes - + Insert non-breaking space after Insere um espaço não-separável após - + Use thin space instead Usar um espaço estreito - + Automatically add space before any of these symbols. Adicionar automaticamente um espaço antes de cada um desses símbolos. - + Automatically add space after any of these symbols. Adicionar automaticamente um espaço após cada um desses símbolos. - + Inserts a thin space instead of a regular space. Insere um espaço estreito ao invés de um espaço regular. @@ -2918,107 +2918,107 @@ GuiPreferencesDocuments - + Text Style Estilo do Texto - + Font family Família da fonte - + Font for the document editor and viewer. Fonte para o editor e visualizador de documentos. - + Font size Tamanho da fonte - + Font size for the document editor and viewer. Tamanho da fonte para o editor e visualizador de documentos. - + Text Flow Fluxo do Texto - + Maximum text width in "Normal Mode" Largura máxima do texto no "Modo Normal" - + Horizontal margins are scaled automatically. Margens horizontais são redimensionadas automaticamente. - + Maximum text width in "Focus Mode" Largura máxima do texto no "Modo Foco" - + Disable maximum text width in "Normal Mode" Desabilita a largura máxima do texto no "Modo Normal" - + Text width is defined by the margins only. A largura do texto é definida apenas pelas margens. - + Hide document footer in "Focus Mode" Oculta o rodapé do documento no "Modo Foco" - + Hide the information bar at the bottom of the document. Oculta a barra de informações na parte de baixo do documento. - + Justify the text margins in editor and viewer Justifica as margens do texto no editor e visualizador - + Lay out text with straight edges in the editor and viewer. Organiza o texto com cantos retos no editor e visualizador. - + Text margin Margem do texto - + If maximum width is set, this becomes the minimum margin. Se a largura máxima for definida, esta se torna a margem mínima. - + Tab width Largura da tabulação - + The width of a tab key press in the editor and viewer. A largura de uma tabulação no editor e visualizador. - + px px - + pt pt @@ -3026,127 +3026,127 @@ GuiPreferencesEditor - + Spell Checking Correção Ortográfica - + Internal Interno - + Spell check provider Provedor de correção ortográfica - + Note that the internal spell check tool is quite slow. Note que o corretor ortográfico interno é significativamente lento. - + Spell check language Idioma do corretor ortográfico - + Available languages are determined by your system. Os idiomas disponíveis são determinados pelo seu sistema. - + Big document limit Limite de documento grande - + Full spell checking is disabled above this limit. A verificação ortográfica é desabilitada acima desse limite. - + Writing Guides Guias de Escrita - + Show tabs and spaces Mostrar tabulações e espaços - + Add symbols to indicate tabs and spaces in the editor. Adiciona símbolos para indicar tabulações e espaços no editor. - + Show line endings Mostrar terminações de linha - + Add a symbol to indicate line endings in the editor. Adiciona um símbolo para indicar a terminação de linha no editor. - + Scroll Behaviour Comportamento da Rolagem - + Scroll past end of the document Rolar após o final do documento - + Also improves trypewriter scrolling for short documents. Também melhora a rolagem de máquina de escrever em documentos curtos. - + Typewriter style scrolling when you type Rolagem no estilo de máquina de escrever quando digita - + Try to keep the cursor at a fixed vertical position. Tenta manter o cursor em uma posição vertical fixa. - + Minimum position for Typewriter scrolling Posição máxima da rolagem de máquina de escrever - + Percentage of the editor height from the top. Porcentagem da altura do editor desde o topo. - + kB kB - + Word Count Contagem de Palavras - + Word count interval Intervalo de contagem de palavras - + How often the word count is updated. Com qual frequência a contagem de palavras é atualizada. - + seconds segundos @@ -3154,82 +3154,82 @@ GuiPreferencesGeneral - + Look and Feel Aparência - + Main GUI theme Tema da interface - + Changing this requires restarting novelWriter. Alterações nessa configuração exigem reinício da aplicação. - + Main icon theme Tema dos ícones - + Prefer icons for dark backgrounds Preferir ícones para fundos escuros - + May improve the look of icons on dark themes. Pode melhorar a aparência dos ícones em temas escuros. - + Font family Família da fonte - + Font size Tamanho da fonte - + GUI Settings Configurações da Interface - + Show full path in document header Mostrar o caminho completo do documento no cabeçalho - + Add the parent folder names to the header. Adiciona o nome dos diretórios-pai ao cabeçalho. - + Hide vertical scroll bars in main windows Ocultar a barra de rolagem vertical nas janelas principais - + Scrolling available with mouse wheel and keys only. A rolagem de tela estará diponível apenas com o mouse ou teclado. - + Hide horizontal scroll bars in main windows Ocultar a barra de rolagem horizontal nas janelas principais - + pt pt - + Main GUI language Idioma da Interface @@ -3237,107 +3237,107 @@ GuiPreferencesProjects - + Automatic Save Salvamento Automático - + Save document interval Intervalo de salvamento do documento - + How often the open document is automatically saved. Com qual frequência o documento aberto é salvo automaticamente. - + Save project interval Intervalo de salvamento do projeto - + How often the open project is automatically saved. Com qual frequencia o projeto aberto é salvo automaticamente. - + Project Backup Cópia de Segurança - + Browse Procurar - + Backup storage location Localização da cópia de segurança - + Run backup when the project is closed Executar a cópia de segurança quando o projeto é fechado - + Can be overridden for individual projects in Project Settings. Pode ser sobrescrito para projetos individuais nas configurações do projeto. - + Ask before running backup Perguntar antes de executar a cópia de segurança - + If off, backups will run in the background. Se desativado, cópias de segurança serão executadas em segundo plano. - + Backup Directory Diretório das Cópias de Segurança - + seconds segundos - + Session Timer Temporizador da Sessão - + Pause the session timer when not writing Pausa o temporizador da sessão quando não estiver escrevendo - + Also pauses when the application window does not have focus. Também pausa quando a janela da aplicação não estiver em foco. - + Editor inactive time before pausing timer Tempo inativo do editor antes de pausar o temporizador - + User activity includes typing and changing the content. Atividades de usuário incluem escrever e alterar o conteúdo. - + minutes minutos - + Path: {0} Caminho: {0} @@ -3345,47 +3345,47 @@ GuiPreferencesQuotes - + Quotation Style Estilo de Aspas - + Single quote open style Estilo da aspa de abertura simples - + The symbol to use for a leading single quote. O símbolo usado para a aspa simples à esquerda. - + Single quote close style Estilo da aspa de fechamento simples - + The symbol to use for a trailing single quote. O símbolo usado para a aspa simples à esquerda. - + Double quote open style Estilo da aspa de abertura dupla - + The symbol to use for a leading double quote. O símbolo usado para a aspa dupla à esquerda. - + Double quote close style Estilo da aspa de fechamento dupla - + The symbol to use for a trailing double quote. O símbolo usado para a aspa dupla à direita. @@ -3393,67 +3393,67 @@ GuiPreferencesSyntax - + Highlighting Theme Tema do Destaque - + Highlighting theme Tema do destaque - + Colour theme to apply to the editor and viewer. Tema de cores para aplicar ao editor e visualizador. - + Quotes & Dialogue Citações e Diálogos - + Highlight text wrapped in quotes Destaca o texto em citações - + Applies to single, double and straight quotes. Aplica-se a citações com aspas simples, duplas e retas. - + Allow open-ended single quotes Permite citações com aspas simples sem fechamento - + Highlight single-quoted line with no closing quote. Destaca a linha com citação de aspas simples sem aspas de fechamento. - + Allow open-ended double quotes Permite citações com aspas duplas sem fechamento - + Highlight double-quoted line with no closing quote. Destaca a linha com citação de aspas duplas sem aspas de fechamento. - + Text Emphasis Ênfase de Texto - + Add highlight colour to emphasised text Adiciona destaque de cor ao texto enfatizado - + Applies to emphasis (italic) and strong (bold). Aplica-se à ênfase (itálico) e ênfase forte (negrito). diff --git a/nw/dialogs/__init__.py b/nw/dialogs/__init__.py index caf2ea2f..2cb163a4 100644 --- a/nw/dialogs/__init__.py +++ b/nw/dialogs/__init__.py @@ -7,6 +7,7 @@ from nw.dialogs.itemeditor import GuiItemEditor from nw.dialogs.preferences import GuiPreferences from nw.dialogs.projload import GuiProjectLoad from nw.dialogs.projsettings import GuiProjectSettings +from nw.dialogs.quotes import GuiQuoteSelect from nw.dialogs.wordlist import GuiWordList __all__ = [ @@ -17,5 +18,6 @@ __all__ = [ "GuiPreferences", "GuiProjectLoad", "GuiProjectSettings", + "GuiQuoteSelect", "GuiWordList", ] diff --git a/nw/dialogs/preferences.py b/nw/dialogs/preferences.py index 16b1ba8d..66315e1d 100644 --- a/nw/dialogs/preferences.py +++ b/nw/dialogs/preferences.py @@ -38,7 +38,8 @@ from PyQt5.QtWidgets import ( from nw.core import NWSpellSimple, NWSpellEnchant from nw.enum import nwAlert from nw.constants import nwConst -from nw.gui.custom import QSwitch, QConfigLayout, PagedDialog, QuotesDialog +from nw.gui.custom import QSwitch, QConfigLayout, PagedDialog +from nw.dialogs.quotes import GuiQuoteSelect logger = logging.getLogger(__name__) @@ -1223,7 +1224,7 @@ class GuiPreferencesQuotes(QWidget): def _getQuote(self, qType): """Dialog for single quote open. """ - qtBox = QuotesDialog(self, currentQuote=self.quoteSym[qType].text()) + qtBox = GuiQuoteSelect(self, currentQuote=self.quoteSym[qType].text()) if qtBox.exec_() == QDialog.Accepted: self.quoteSym[qType].setText(qtBox.selectedQuote) diff --git a/nw/dialogs/quotes.py b/nw/dialogs/quotes.py new file mode 100644 index 00000000..7c129332 --- /dev/null +++ b/nw/dialogs/quotes.py @@ -0,0 +1,133 @@ +# -*- coding: utf-8 -*- +""" +novelWriter – GUI Quotes Dialog +=============================== +GUI class for quotes dialog + +File History: +Created: 2020-06-18 [0.9] + +This file is a part of novelWriter +Copyright 2018–2021, Veronica Berglyd Olsen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +""" + +import nw +import logging + +from PyQt5.QtGui import QFontMetrics +from PyQt5.QtCore import Qt, QSize +from PyQt5.QtWidgets import ( + QLabel, QVBoxLayout, QHBoxLayout, QDialog, QDialogButtonBox, + QListWidget, QListWidgetItem, QFrame +) + +from nw.constants import trConst, nwQuotes + +logger = logging.getLogger(__name__) + +class GuiQuoteSelect(QDialog): + + selectedQuote = "" + + def __init__(self, theParent=None, currentQuote="\""): + QDialog.__init__(self, parent=theParent) + + self.mainConf = nw.CONFIG + + self.outerBox = QVBoxLayout() + self.innerBox = QHBoxLayout() + self.labelBox = QVBoxLayout() + + self.selectedQuote = currentQuote + + qMetrics = QFontMetrics(self.font()) + pxW = 7*qMetrics.boundingRectChar("M").width() + pxH = 7*qMetrics.boundingRectChar("M").height() + pxH = 7*qMetrics.boundingRectChar("M").height() + + lblFont = self.font() + lblFont.setPointSizeF(4*lblFont.pointSizeF()) + + # Preview Label + self.previewLabel = QLabel(currentQuote) + self.previewLabel.setFont(lblFont) + self.previewLabel.setFixedSize(QSize(pxW, pxH)) + self.previewLabel.setAlignment(Qt.AlignCenter) + self.previewLabel.setFrameStyle(QFrame.Box | QFrame.Plain) + + # Quote Symbols + self.listBox = QListWidget() + self.listBox.itemSelectionChanged.connect(self._selectedSymbol) + + minSize = 100 + for sKey, sLabel in nwQuotes.SYMBOLS.items(): + theText = "[ %s ] %s" % (sKey, trConst(sLabel)) + minSize = max(minSize, qMetrics.boundingRect(theText).width()) + qtItem = QListWidgetItem(theText) + qtItem.setData(Qt.UserRole, sKey) + self.listBox.addItem(qtItem) + if sKey == currentQuote: + self.listBox.setCurrentItem(qtItem) + + self.listBox.setMinimumWidth(minSize + self.mainConf.pxInt(40)) + self.listBox.setMinimumHeight(self.mainConf.pxInt(150)) + + # Buttons + self.buttonBox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) + self.buttonBox.accepted.connect(self._doAccept) + self.buttonBox.rejected.connect(self._doReject) + + # Assemble + self.labelBox.addWidget(self.previewLabel, 0, Qt.AlignTop) + self.labelBox.addStretch(1) + + self.innerBox.addLayout(self.labelBox) + self.innerBox.addWidget(self.listBox) + + self.outerBox.addLayout(self.innerBox) + self.outerBox.addWidget(self.buttonBox) + + self.setLayout(self.outerBox) + + return + + ## + # Slots + ## + + def _selectedSymbol(self): + """Update the preview label and the selected quote style. + """ + selItems = self.listBox.selectedItems() + if selItems: + theSymbol = selItems[0].data(Qt.UserRole) + self.previewLabel.setText(theSymbol) + self.selectedQuote = theSymbol + return + + def _doAccept(self): + """Ok button clicked. + """ + self.accept() + return + + def _doReject(self): + """Cancel button clicked. + """ + self.reject() + return + +# END Class GuiQuoteSelect diff --git a/nw/gui/custom.py b/nw/gui/custom.py index e41c54dd..343f3c10 100644 --- a/nw/gui/custom.py +++ b/nw/gui/custom.py @@ -29,18 +29,17 @@ along with this program. If not, see . import nw import logging -from PyQt5.QtGui import QColor, QPalette, QPainter, QFontMetrics +from PyQt5.QtGui import QColor, QPalette, QPainter from PyQt5.QtCore import ( - Qt, QRect, QPoint, QSize, QRectF, QPropertyAnimation, pyqtProperty + Qt, QRect, QPoint, QRectF, QPropertyAnimation, pyqtProperty ) from PyQt5.QtWidgets import ( QGridLayout, QLabel, QWidget, QVBoxLayout, QHBoxLayout, QSizePolicy, - QAbstractButton, QDialog, QTabWidget, QTabBar, QStyle, QDialogButtonBox, - QStylePainter, QStyleOptionTab, QListWidget, QListWidgetItem, QFrame, - QLineEdit + QAbstractButton, QDialog, QTabWidget, QTabBar, QStyle, QStylePainter, + QStyleOptionTab, QLineEdit ) -from nw.constants import trConst, nwQuotes, nwUnicode +from nw.constants import nwUnicode logger = logging.getLogger(__name__) @@ -461,101 +460,3 @@ class VerticalTabBar(QTabBar): return # END Class VerticalTabBar - -# =============================================================================================== # -# Quotes Dialog -# =============================================================================================== # - -class QuotesDialog(QDialog): - - selectedQuote = "" - - def __init__(self, theParent=None, currentQuote="\""): - QDialog.__init__(self, parent=theParent) - - self.mainConf = nw.CONFIG - - self.outerBox = QVBoxLayout() - self.innerBox = QHBoxLayout() - self.labelBox = QVBoxLayout() - - self.selectedQuote = currentQuote - - qMetrics = QFontMetrics(self.font()) - pxW = 7*qMetrics.boundingRectChar("M").width() - pxH = 7*qMetrics.boundingRectChar("M").height() - pxH = 7*qMetrics.boundingRectChar("M").height() - - lblFont = self.font() - lblFont.setPointSizeF(4*lblFont.pointSizeF()) - - # Preview Label - self.previewLabel = QLabel(currentQuote) - self.previewLabel.setFont(lblFont) - self.previewLabel.setFixedSize(QSize(pxW, pxH)) - self.previewLabel.setAlignment(Qt.AlignCenter) - self.previewLabel.setFrameStyle(QFrame.Box | QFrame.Plain) - - # Quote Symbols - self.listBox = QListWidget() - self.listBox.itemSelectionChanged.connect(self._selectedSymbol) - - minSize = 100 - for sKey, sLabel in nwQuotes.SYMBOLS.items(): - theText = "[ %s ] %s" % (sKey, trConst(sLabel)) - minSize = max(minSize, qMetrics.boundingRect(theText).width()) - qtItem = QListWidgetItem(theText) - qtItem.setData(Qt.UserRole, sKey) - self.listBox.addItem(qtItem) - if sKey == currentQuote: - self.listBox.setCurrentItem(qtItem) - - self.listBox.setMinimumWidth(minSize + self.mainConf.pxInt(40)) - self.listBox.setMinimumHeight(self.mainConf.pxInt(150)) - - # Buttons - self.buttonBox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) - self.buttonBox.accepted.connect(self._doAccept) - self.buttonBox.rejected.connect(self._doReject) - - # Assemble - self.labelBox.addWidget(self.previewLabel, 0, Qt.AlignTop) - self.labelBox.addStretch(1) - - self.innerBox.addLayout(self.labelBox) - self.innerBox.addWidget(self.listBox) - - self.outerBox.addLayout(self.innerBox) - self.outerBox.addWidget(self.buttonBox) - - self.setLayout(self.outerBox) - - return - - ## - # Slots - ## - - def _selectedSymbol(self): - """Update the preview label and the selected quote style. - """ - selItems = self.listBox.selectedItems() - if selItems: - theSymbol = selItems[0].data(Qt.UserRole) - self.previewLabel.setText(theSymbol) - self.selectedQuote = theSymbol - return - - def _doAccept(self): - """Ok button clicked. - """ - self.accept() - return - - def _doReject(self): - """Cancel button clicked. - """ - self.reject() - return - -# END Class QuotesDialog diff --git a/tests/test_gui/test_gui_dialogs.py b/tests/test_dialogs/test_dlg_dialogs.py similarity index 90% rename from tests/test_gui/test_gui_dialogs.py rename to tests/test_dialogs/test_dlg_dialogs.py index f432b155..8681ead8 100644 --- a/tests/test_gui/test_gui_dialogs.py +++ b/tests/test_dialogs/test_dlg_dialogs.py @@ -25,20 +25,20 @@ import pytest from PyQt5.QtCore import QItemSelectionModel from PyQt5.QtWidgets import QListWidgetItem, QDialog, QMessageBox -from nw.gui.custom import QuotesDialog +from nw.dialogs import GuiQuoteSelect keyDelay = 2 typeDelay = 1 stepDelay = 20 @pytest.mark.gui -def testGuiDialogs_Quotes(qtbot, monkeypatch, nwGUI, nwMinimal): +def testDialogs_QuoteSelect(qtbot, monkeypatch, nwGUI, nwMinimal): """Test the quote symbols dialog. """ # Block message box monkeypatch.setattr(QMessageBox, "question", lambda *args: QMessageBox.Yes) - nwQuot = QuotesDialog(nwGUI) + nwQuot = GuiQuoteSelect(nwGUI) nwQuot.show() lastItem = "" @@ -58,4 +58,4 @@ def testGuiDialogs_Quotes(qtbot, monkeypatch, nwGUI, nwMinimal): nwQuot._doReject() nwQuot.close() -# END Test testDialogs_Quotes +# END Test testDialogs_QuoteSelect diff --git a/tests/test_dialogs/test_dlg_preferences.py b/tests/test_dialogs/test_dlg_preferences.py index 76197081..1847dae2 100644 --- a/tests/test_dialogs/test_dlg_preferences.py +++ b/tests/test_dialogs/test_dlg_preferences.py @@ -33,8 +33,7 @@ from PyQt5.QtWidgets import ( ) from nw.config import Config -from nw.gui.custom import QuotesDialog -from nw.dialogs import GuiPreferences +from nw.dialogs import GuiPreferences, GuiQuoteSelect from nw.constants import nwConst keyDelay = 2 @@ -234,8 +233,8 @@ def testDlgPreferences_Main(qtbot, monkeypatch, fncDir, outDir, refDir): tabQuote = nwPrefs.tabQuote nwPrefs._tabBox.setCurrentWidget(tabQuote) - monkeypatch.setattr(QuotesDialog, "selectedQuote", "'") - monkeypatch.setattr(QuotesDialog, "exec_", lambda *args: QDialog.Accepted) + monkeypatch.setattr(GuiQuoteSelect, "selectedQuote", "'") + monkeypatch.setattr(GuiQuoteSelect, "exec_", lambda *args: QDialog.Accepted) qtbot.mouseClick(tabQuote.btnDoubleStyleC, Qt.LeftButton) # Save and Check Config From e222915a37811d042b436b34d8b67e52fca0b3c9 Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Fri, 23 Apr 2021 21:54:03 +0200 Subject: [PATCH 6/6] Update tests readme --- tests/README.md | 41 ++------------------------ tests/test_dialogs/test_dlg_dialogs.py | 4 +-- 2 files changed, 5 insertions(+), 40 deletions(-) diff --git a/tests/README.md b/tests/README.md index 4db4a3d7..5fb3404e 100644 --- a/tests/README.md +++ b/tests/README.md @@ -52,45 +52,10 @@ pytest-3 -v -m core Available markers are: -* `base` for unit tests covering the non-gui classes of the `bw` folder.. +* `base` for unit tests covering the non-gui classes of the `nw` folder.. * `core` for unit tests covering the classes in the `nw/core` folder. * `gui` for unit and integrations tests covering the classes in the `nw/gui` folder. -## Tests -To filter specific groups of tests, use the `-k` switch. -The commands for the respective test categories are listed below. - -| Type | Test Target | Source File(s) | Marker | Filter | -| :---------- | :----------------------- | :--------------------- | :-------- | :----------------------- | -| Unit | Main function | nw/\_\_init\_\_.py | `-m base` | `-k testBaseInit` | -| Unit | Common functions | nw/common.py | `-m base` | `-k testBaseCommon` | -| Unit | Config class | nw/config.py | `-m base` | `-k testBaseConfig` | -| Unit | Error handlers | nw/error.py | `-m base` | `-k testBaseError` | -| Unit | Core functions | nw/core/tools.py | `-m core` | `-k testCoreTools` | -| Unit | NWDoc class | nw/core/document.py | `-m core` | `-k testCoreDocument` | -| Unit | NWIndex class | nw/core/index.py | `-m core` | `-k testCoreIndex` | -| Unit | NWItem class | nw/core/item.py | `-m core` | `-k testCoreItem` | -| Unit | NWProject class | nw/core/project.py | `-m core` | `-k testCoreProject` | -| Unit | NWSpell* classes | nw/core/spellcheck.py | `-m core` | `-k testCoreSpell` | -| Unit | NWStatus class | nw/core/status.py | `-m core` | `-k testCoreStatus` | -| Unit | NWTree class | nw/core/tree.py | `-m core` | `-k testCoreTree` | -| Unit | OptionsState class | nw/core/options.py | `-m core` | `-k testCoreOptions` | -| Unit | ToHtml class | nw/core/tohtml.py | `-m core` | `-k testCoreToHtml` | -| Unit | Tokenizer class | nw/core/tokenizer.py | `-m core` | `-k testCoreToken` | -| Integration | About Dialogs | nw/gui/about.py | `-m gui` | `-k testGuiAbout` | -| Integration | Build Novel Project Tool | nw/gui/build.py | `-m gui` | `-k testGuiBuild` | -| Integration | Document Editor Widget | nw/gui/doceditor.py | `-m gui` | `-k testGuiEditor` | -| Integration | Document Viewer Widget | nw/gui/docviewer.py | `-m gui` | `-k testGuiViewer` | -| Integration | Item Editor Dialog | nw/gui/itemeditor.py | `-m gui` | `-k testGuiItemEditor` | -| Integration | Menu Widgets | nw/gui/mainmenu.py | `-m gui` | `-k testGuiMenu` | -| Integration | Merge Tool | nw/gui/docmerge.py | `-m gui` | `-k testGuiMergeSplit` | -| Integration | Outline Widget | nw/gui/outline.py | `-m gui` | `-k testGuiOutline` | -| Integration | Preferences Dialog | nw/gui/preferences.py | `-m gui` | `-k testGuiPreferences` | -| Integration | Project Load Dialog | nw/gui/projload.py | `-m gui` | `-k testGuiProjLoad` | -| Integration | Project Settings Dialog | nw/gui/projsettings.py | `-m gui` | `-k testGuiProjSettings` | -| Integration | Project Tree Widget | nw/gui/projtree.py | `-m gui` | `-k testGuiProjTree` | -| Integration | Theme/Icon Classes | nw/gui/theme.py | `-m gui` | `-k testGuiTheme` | -| Integration | Split Tool | nw/gui/docsplit.py | `-m gui` | `-k testGuiMergeSplit` | -| Integration | Writing Stats Dialog | nw/gui/writingstats.py | `-m gui` | `-k testGuiWritingStats` | -| Integration | Various Dialogs | N/A | `-m gui` | `-k testGuiDialogs` | +You can filter tests further with the `-k` switch, all the way down to a single test. You can for +instance run only dialog tests with `-k testDlg` or tools with `-k testTool`. diff --git a/tests/test_dialogs/test_dlg_dialogs.py b/tests/test_dialogs/test_dlg_dialogs.py index 8681ead8..a60be95f 100644 --- a/tests/test_dialogs/test_dlg_dialogs.py +++ b/tests/test_dialogs/test_dlg_dialogs.py @@ -32,7 +32,7 @@ typeDelay = 1 stepDelay = 20 @pytest.mark.gui -def testDialogs_QuoteSelect(qtbot, monkeypatch, nwGUI, nwMinimal): +def testDlgOther_QuoteSelect(qtbot, monkeypatch, nwGUI, nwMinimal): """Test the quote symbols dialog. """ # Block message box @@ -58,4 +58,4 @@ def testDialogs_QuoteSelect(qtbot, monkeypatch, nwGUI, nwMinimal): nwQuot._doReject() nwQuot.close() -# END Test testDialogs_QuoteSelect +# END Test testDlgOther_QuoteSelect