From b9d344c7d98fca1b255283b69d9268eb39dc472a Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Tue, 23 Feb 2021 22:07:14 +0100 Subject: [PATCH 1/8] Make sure the test cheks for issue 688 --- nw/core/index.py | 2 +- tests/test_core/test_core_index.py | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/nw/core/index.py b/nw/core/index.py index 36c27b27..a291c22e 100644 --- a/nw/core/index.py +++ b/nw/core/index.py @@ -717,7 +717,7 @@ class NWIndex(): for refTitle in self._refIndex[tHandle]: for aTag in self._refIndex[tHandle][refTitle].get("tags", []): if len(aTag) == 3 and (sTitle is None or sTitle == refTitle): - if aTag[1] in theRefs: # Future-compatible. Check can be removed in 1.2. + if aTag[1] in theRefs: theRefs[aTag[1]].append(aTag[2]) return theRefs diff --git a/tests/test_core/test_core_index.py b/tests/test_core/test_core_index.py index 9b1c656a..991f3215 100644 --- a/tests/test_core/test_core_index.py +++ b/tests/test_core/test_core_index.py @@ -198,14 +198,26 @@ def testCoreIndex_CheckThese(nwMinimal, dummyGUI): assert theIndex.scanText(cHandle, ( "# Jane Smith\n" - "@tag: Jane" + "@tag: Jane\n" )) assert theIndex.scanText(nHandle, ( "# Hello World!\n" - "@pov: Jane" + "@pov: Jane\n" + "@invalid: John\n" # Checks for issue #688 )) assert theIndex._tagIndex == {"Jane": [2, cHandle, "CHARACTER", "T000001"]} assert theIndex.getNovelData(nHandle, "T000001")["title"] == "Hello World!" + assert theIndex.getReferences(nHandle, "T000001") == { + "@char": [], + "@custom": [], + "@entity": [], + "@focus": [], + "@location": [], + "@object": [], + "@plot": [], + "@pov": ["Jane"], + "@time": [] + } assert theIndex.novelChangedSince(0) assert theIndex.notesChangedSince(0) @@ -281,7 +293,7 @@ def testCoreIndex_ScanText(nwMinimal, dummyGUI): "This is a story about Jane Smith.\n\n" "Well, not really.\n" )) - assert str(theIndex._tagIndex) == "{'Jane': [2, '%s', 'CHARACTER', 'T000001']}" % cHandle + assert theIndex._tagIndex == {"Jane": [2, cHandle, "CHARACTER", "T000001"]} assert theIndex.getNovelData(nHandle, "T000001")["title"] == "Hello World!" # Check that title sections are indexed properly From c2e3fef7fc1f00f0dac4a706f0ede1a1eb7731d6 Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Tue, 23 Feb 2021 22:28:02 +0100 Subject: [PATCH 2/8] Improve keyword indexer and extend test --- nw/core/index.py | 40 ++++++++++-------------------- tests/test_core/test_core_index.py | 2 ++ 2 files changed, 15 insertions(+), 27 deletions(-) diff --git a/nw/core/index.py b/nw/core/index.py index a291c22e..2a3a142a 100644 --- a/nw/core/index.py +++ b/nw/core/index.py @@ -321,8 +321,7 @@ class NWIndex(): nTitle = nLine elif aLine.startswith("@"): - self._indexNoteRef(tHandle, aLine, nLine, nTitle) - self._indexTag(tHandle, aLine, nLine, nTitle, itemClass) + self._indexKeyword(tHandle, aLine, nLine, nTitle, itemClass) elif aLine.startswith("%"): if nTitle > 0: @@ -463,41 +462,28 @@ class NWIndex(): self._noteIndex[tHandle][sTitle]["updated"] = round(time()) return - def _indexNoteRef(self, tHandle, aLine, nLine, nTitle): + def _indexKeyword(self, tHandle, aLine, nLine, nTitle, itemClass): """Validate and save the information about a reference to a tag in another file. """ isValid, theBits, _ = self.scanThis(aLine) - if not isValid or len(theBits) == 0: - return False - - sTitle = "T%06d" % nTitle - if sTitle not in self._refIndex[tHandle]: - return False - - if theBits[0] == nwKeyWords.TAG_KEY: - return False + if not isValid or len(theBits) < 2: + logger.warning("Skipping keyword with %d value(s) in %s" % (len(theBits), tHandle)) + return if theBits[0] not in nwKeyWords.VALID_KEYS: - return False - - for aVal in theBits[1:]: - self._refIndex[tHandle][sTitle]["tags"].append([nLine, theBits[0], aVal]) - - return True - - def _indexTag(self, tHandle, aLine, nLine, nTitle, itemClass): - """Validate and save the information from a tag. - """ - isValid, theBits, thePos = self.scanThis(aLine) - if not isValid or len(theBits) != 2: - return False + logger.warning("Skipping invalid keyword '%s' in %s" % (theBits[0], tHandle)) + return + sTitle = "T%06d" % nTitle if theBits[0] == nwKeyWords.TAG_KEY: - sTitle = "T%06d" % nTitle self._tagIndex[theBits[1]] = [nLine, tHandle, itemClass.name, sTitle] - return True + elif sTitle in self._refIndex[tHandle]: + for aVal in theBits[1:]: + self._refIndex[tHandle][sTitle]["tags"].append([nLine, theBits[0], aVal]) + + return ## # Check @ Lines diff --git a/tests/test_core/test_core_index.py b/tests/test_core/test_core_index.py index 991f3215..487dd68e 100644 --- a/tests/test_core/test_core_index.py +++ b/tests/test_core/test_core_index.py @@ -199,6 +199,8 @@ def testCoreIndex_CheckThese(nwMinimal, dummyGUI): assert theIndex.scanText(cHandle, ( "# Jane Smith\n" "@tag: Jane\n" + "@tag:\n" + "@:\n" )) assert theIndex.scanText(nHandle, ( "# Hello World!\n" From f22a3509385d1d0f4fb7c113d6722b3b79b808ca Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Wed, 24 Feb 2021 20:38:51 +0100 Subject: [PATCH 3/8] Create FUNDING.yml --- .github/FUNDING.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 00000000..605c276d --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: jadzia626 +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] From 67bd23a0276f6c80454ee722478fdd5c5ab43c38 Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Wed, 24 Feb 2021 20:47:00 +0100 Subject: [PATCH 4/8] Workflow updates and file cleanup --- .github/FUNDING.yml | 18 +++++++++--------- .github/workflows/syntax.yml | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 605c276d..0624f10a 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,12 +1,12 @@ # These are supported funding model platforms -github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] -patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username +# github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +# patreon: # Replace with a single Patreon username +# open_collective: # Replace with a single Open Collective username ko_fi: jadzia626 -tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] +# tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +# community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +# liberapay: # Replace with a single Liberapay username +# issuehunt: # Replace with a single IssueHunt username +# otechie: # Replace with a single Otechie username +# custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/.github/workflows/syntax.yml b/.github/workflows/syntax.yml index be794222..9371bb99 100644 --- a/.github/workflows/syntax.yml +++ b/.github/workflows/syntax.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Python Setup - uses: actions/setup-python@v1 + uses: actions/setup-python@v2 with: python-version: 3 architecture: x64 From fcd1d400f86f2f9cf44b50edf6ccf9eb7c916976 Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Wed, 24 Feb 2021 21:39:21 +0100 Subject: [PATCH 5/8] Fix spelling of the word "licence" --- nw/__init__.py | 2 +- nw/gui/about.py | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/nw/__init__.py b/nw/__init__.py index 6d53ead4..a2122e73 100644 --- a/nw/__init__.py +++ b/nw/__init__.py @@ -137,7 +137,7 @@ def main(sysArgs=None): "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" - "GNU General Public License for more details.\n" + "GNU General Public Licence for more details.\n" "\n" "Usage:\n" " -h, --help Print this message.\n" diff --git a/nw/gui/about.py b/nw/gui/about.py index 94c66955..d2d76c1c 100644 --- a/nw/gui/about.py +++ b/nw/gui/about.py @@ -92,7 +92,7 @@ class GuiAbout(QDialog): self.tabBox = QTabWidget() self.tabBox.addTab(self.pageAbout, self.tr("About")) self.tabBox.addTab(self.pageNotes, self.tr("Release")) - self.tabBox.addTab(self.pageLicense, self.tr("License")) + self.tabBox.addTab(self.pageLicense, self.tr("Licence")) self.innerBox.addWidget(self.tabBox) # OK Button @@ -155,8 +155,8 @@ class GuiAbout(QDialog): ), license1 = self.tr( "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 " + "under the terms of the GNU General Public Licence as published by the " + "Free Software Foundation, either version 3 of the Licence, or (at your " "option) any later version." ), license2 = self.tr( @@ -165,7 +165,7 @@ class GuiAbout(QDialog): "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." ), license3 = self.tr( - "See the License tab for the full license text, or visit the " + "See the Licence tab for the full licence text, or visit the " "GNU website at {0} for more details." ).format( "GPL v3.0" @@ -179,7 +179,7 @@ class GuiAbout(QDialog): self.tr("Theme: {0}").format(theTheme.themeName), self.tr("Author: {0}").format(theTheme.themeAuthor), self.tr("Credit: {0}").format(theTheme.themeCredit), - self.tr("License: {0}").format( + self.tr("Licence: {0}").format( f"{theTheme.themeLicense}" ) ) @@ -189,7 +189,7 @@ class GuiAbout(QDialog): self.tr("Icons: {0}").format(theIcons.themeName), self.tr("Author: {0}").format(theIcons.themeAuthor), self.tr("Credit: {0}").format(theIcons.themeCredit), - self.tr("License: {0}").format( + self.tr("Licence: {0}").format( f"{theIcons.themeLicense}" ) ) @@ -199,7 +199,7 @@ class GuiAbout(QDialog): self.tr("Syntax: {0}").format(theTheme.syntaxName), self.tr("Author: {0}").format(theTheme.syntaxAuthor), self.tr("Credit: {0}").format(theTheme.syntaxCredit), - self.tr("License: {0}").format( + self.tr("Licence: {0}").format( f"{theTheme.syntaxLicense}" ) ) @@ -221,7 +221,7 @@ class GuiAbout(QDialog): return def _fillLicensePage(self): - """Load the content for the License page. + """Load the content for the Licence page. """ docPath = os.path.join(self.mainConf.assetPath, "text", "gplv3_en.htm") if os.path.isfile(docPath): @@ -229,7 +229,7 @@ class GuiAbout(QDialog): helpText = inFile.read() self.pageLicense.setHtml(helpText) else: - self.pageLicense.setHtml("Error loading license text ...") + self.pageLicense.setHtml("Error loading licence text ...") return def _setStyleSheet(self): From 36fd23b264533a7347f34844fec95f5786ecdd84 Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Wed, 24 Feb 2021 22:19:17 +0100 Subject: [PATCH 6/8] Fix some typos and inconsistencies in GUI texts --- i18n/nw_fr.ts | 26 ++-- i18n/nw_nb_NO.ts | 355 +++++++++++++++++++++--------------------- i18n/nw_pt.ts | 353 +++++++++++++++++++++-------------------- nw/core/project.py | 4 +- nw/gui/about.py | 4 +- nw/gui/build.py | 2 +- nw/gui/doceditor.py | 2 +- nw/gui/mainmenu.py | 2 +- nw/gui/preferences.py | 2 +- 9 files changed, 374 insertions(+), 376 deletions(-) diff --git a/i18n/nw_fr.ts b/i18n/nw_fr.ts index 015a537e..ed010368 100644 --- a/i18n/nw_fr.ts +++ b/i18n/nw_fr.ts @@ -350,7 +350,7 @@ - License + Licence Licence @@ -380,7 +380,7 @@ - See the License tab for the full license text, or visit the GNU website at {0} for more details. + 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. @@ -400,7 +400,7 @@ - License: {0} + Licence: {0} Licence: {0} @@ -678,7 +678,7 @@ - JSON + novelWriters Markdown (.json) + JSON + novelWriter Markdown (.json) JSON + Markdown novelWriter (.json) @@ -1008,7 +1008,7 @@ - Please selection some text before calling replace quotes. + Please select some text before calling replace quotes. Veuillez sélectionner du texte avant de demander le remplacement des guillemets. @@ -2521,11 +2521,6 @@ Writing Statistics Statistiques d'écriture - - - Show the writing statistics dialog - Afficher le dialogue des statistiques d'écriture - Preferences @@ -2606,6 +2601,11 @@ Open the novelWriter website at {0} Ouvrir le site web de novelWriter à {0} + + + Show the writing statistics dialogue + Afficher le dialogue des statistiques d'écriture + GuiMainStatus @@ -3283,7 +3283,7 @@ - Can be overridden for individual projects in project settings. + Can be overridden for individual projects in Project Settings. Peut être invalidé pour des projets spécifiques dans leurs paramètres. @@ -4411,12 +4411,12 @@ - You must set a valid backup path in preferences to use the automatic project backup feature. + You must set a valid backup path in Preferences to use the automatic project backup feature. Vous devez spécifier un répertoire de sauvegarde valide dans les préférences du projet avant d'utiliser la fonction de sauvegarde automatique. - You must set a valid project name in project settings to use the automatic project backup feature. + You must set a valid project name in Project Settings to use the automatic project backup feature. Vous devez spécifier un titre de travail valide dans les préférences du projet avant d'utiliser la fonction de sauvegarde automatique. diff --git a/i18n/nw_nb_NO.ts b/i18n/nw_nb_NO.ts index c29ad4b3..8ccf7747 100644 --- a/i18n/nw_nb_NO.ts +++ b/i18n/nw_nb_NO.ts @@ -1,75 +1,74 @@ - - + Common - + just now nå nettopp - + a minute ago for et minutt siden - + an hour ago for en time siden - + a day ago for en dag siden - + a week ago for en uke siden - + a month ago for en måned siden - + a year ago for et år siden - + {0} minutes ago for {0} minutter siden - + {0} hours ago for {0} timer siden - + {0} days ago for {0} dager siden - + {0} weeks ago for {0} uker siden - + {0} months ago for {0} måneder siden - + {0} years ago for {0} år siden - + in the future i fremtiden @@ -351,7 +350,7 @@ - License + Licence Lisens @@ -377,11 +376,11 @@ 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 License for flere detaljer. + 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 License tab for the full license text, or visit the GNU website at {0} for more details. + 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. @@ -401,7 +400,7 @@ - License: {0} + Licence: {0} Lisens: {0} @@ -664,7 +663,7 @@ - JSON + novelWriters Markdown (.json) + JSON + novelWriter Markdown (.json) @@ -1009,7 +1008,7 @@ - Please selection some text before calling replace quotes. + Please select some text before calling replace quotes. Venligst velg en del av teksten før du velger å erstatte sitattegn. @@ -2522,11 +2521,6 @@ Writing Statistics Statistikk - - - Show the writing statistics dialog - Vis prosjektets statistikk i et vindu - Preferences @@ -2607,6 +2601,11 @@ Open the novelWriter website at {0} Åpne novelWriters nettside på {0} + + + Show the writing statistics dialogue + Vis prosjektets statistikk i et vindu + GuiMainStatus @@ -2783,7 +2782,7 @@ 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. @@ -2791,117 +2790,117 @@ 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. - + 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. @@ -2909,107 +2908,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. @@ -3017,127 +3016,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. @@ -3145,82 +3144,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 @@ -3228,107 +3227,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. + + 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 @@ -3336,67 +3335,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. @@ -3563,32 +3562,32 @@ 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 @@ -3596,32 +3595,32 @@ 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 @@ -3629,57 +3628,57 @@ GuiProjectEditStatus - + New Ny - + Delete Slett - + Save Lagre - + Colour Farge - + Name Navn - + 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 - + Cannot delete status item that is in use. Kan ikke slette statusnivåer som er i bruk. - + {0} [{1}] @@ -4402,12 +4401,12 @@ - You must set a valid backup path in preferences to use the automatic project backup feature. + You must set a valid backup path in Preferences to use the automatic project backup feature. Du må sette en gyldig filbane i innstillingene for å kunne bruke automatisk sikkerhetskopi. - You must set a valid project name in project settings to use the automatic project backup feature. + You must set a valid project name in Project Settings to use the automatic project backup feature. Du må sette en gyldig arbeidstittel i prosjektinnstillingene for å kunne bruke automatisk sikkerhetskopi. @@ -4441,27 +4440,27 @@ Én eller flere gjennopprettede filer kunne ikke bli lagt til i posjektet. Pass på at "Roman"-mappen i det minste eksisterer. - + Not a folder: {0} Ikke en mappe: {0} - + Could not move: {0} Kunne ikke flytte: {0} - + Could not delete: {0} Kunne ikke slette: {0} - + Could not make folder: {0} Kunne ikke lage mappe: {0} - + Could not move item {0} to {1}. Kunne ikke flytte {0} til {1}. diff --git a/i18n/nw_pt.ts b/i18n/nw_pt.ts index 26a47379..b74ccc95 100644 --- a/i18n/nw_pt.ts +++ b/i18n/nw_pt.ts @@ -1,75 +1,74 @@ - - + Common - + in the future no futuro - + just now agora - + a minute ago um minuto atrás - + {0} minutes ago {0} minutos atrás - + an hour ago uma hora atrás - + {0} hours ago {0} horas atrás - + a day ago um dia atrás - + {0} days ago {0} dias atrás - + a week ago uma semana atrás - + {0} weeks ago {0} semanas atrás - + a month ago um mês atrás - + {0} months ago {0} meses atrás - + a year ago um ano atrás - + {0} years ago {0} anos atrás @@ -391,12 +390,12 @@ - See the License tab for the full license text, or visit the GNU website at {0} for more details. + 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. - License + Licence Licença @@ -411,7 +410,7 @@ - License: {0} + Licence: {0} Licença: {0} @@ -459,7 +458,7 @@ - JSON + novelWriters Markdown (.json) + JSON + novelWriter Markdown (.json) JSON + Markdown do novelWriter (.json) @@ -999,7 +998,7 @@ - Please selection some text before calling replace quotes. + Please select some text before calling replace quotes. Por favor, selecione algum texto antes de invocar a substituição de aspas. @@ -2272,11 +2271,6 @@ Writing Statistics Estatísticas de Escrita - - - Show the writing statistics dialog - Mostra o diálogo de estatísticas de escrita - Preferences @@ -2607,6 +2601,11 @@ Find previous occurrence of text in document Encontra a ocorrência anterior do texto no documento + + + Show the writing statistics dialogue + Mostra o diálogo de estatísticas de escrita + GuiMainStatus @@ -2748,7 +2747,7 @@ 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. @@ -2791,117 +2790,117 @@ 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. - + 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. @@ -2909,107 +2908,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 @@ -3017,127 +3016,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 @@ -3145,82 +3144,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 @@ -3228,107 +3227,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. + + 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} @@ -3336,67 +3335,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). @@ -3548,17 +3547,17 @@ Mude quando quiser! - + One name per line. Um nome por linha. - + Default Padrão - + Overrides main preferences. Sobrescreve as preferências globais. @@ -3578,17 +3577,17 @@ 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 @@ -3596,32 +3595,32 @@ 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 @@ -3629,57 +3628,57 @@ GuiProjectEditStatus - + Name Nome - + 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 - + New Novo - + Delete Remover - + Save Salvar - + Colour Cor - + Select Colour Selecione a Cor - + Cannot delete status item that is in use. Não é possível remover um item de status que estja em uso. - + {0} [{1}] @@ -4362,12 +4361,12 @@ - You must set a valid backup path in preferences to use the automatic project backup feature. + You must set a valid backup path in Preferences to use the automatic project backup feature. Deve ser definido um caminho válido para as cópias de segurança nas preferências para usar a funcionalidade de cópias de segurança automáticas. - You must set a valid project name in project settings to use the automatic project backup feature. + You must set a valid project name in Project Settings to use the automatic project backup feature. Deve ser definido um nome de projeto válido nas preferências do projeto para usar a funcionalidade de cópias de segurança automáticas. @@ -4381,17 +4380,17 @@ Um ou mais arquivos-órfãos não puderam ser readicionados ao projeto. Verifique que pelo menos um diretório-raiz de Livro exista. - + Could not move: {0} Não foi possível mover: {0} - + Could not delete: {0} Não foi possível remover: {0} - + Could not make folder: {0} Não foi possível criar o diretório: {0} @@ -4436,7 +4435,7 @@ Arquivo Recuperado {0} - + Not a folder: {0} Não é um diretório: {0} @@ -4451,7 +4450,7 @@ - + Could not move item {0} to {1}. Não foi possível mover o item {0} para {1}. diff --git a/nw/core/project.py b/nw/core/project.py index b59c6a9c..5f2862ac 100644 --- a/nw/core/project.py +++ b/nw/core/project.py @@ -988,7 +988,7 @@ class NWProject(): if not os.path.isdir(self.mainConf.backupPath): self.theParent.makeAlert( self.tr( - "You must set a valid backup path in preferences to use " + "You must set a valid backup path in Preferences to use " "the automatic project backup feature." ), nwAlert.WARN ) @@ -997,7 +997,7 @@ class NWProject(): if self.projName == "": self.theParent.makeAlert( self.tr( - "You must set a valid project name in project settings to " + "You must set a valid project name in Project Settings to " "use the automatic project backup feature." ), nwAlert.WARN ) diff --git a/nw/gui/about.py b/nw/gui/about.py index d2d76c1c..f2335c1a 100644 --- a/nw/gui/about.py +++ b/nw/gui/about.py @@ -155,8 +155,8 @@ class GuiAbout(QDialog): ), license1 = self.tr( "novelWriter is free software: you can redistribute it and/or modify it " - "under the terms of the GNU General Public Licence as published by the " - "Free Software Foundation, either version 3 of the Licence, or (at your " + "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." ), license2 = self.tr( diff --git a/nw/gui/build.py b/nw/gui/build.py index b6ee34d2..2a2be0e8 100644 --- a/nw/gui/build.py +++ b/nw/gui/build.py @@ -468,7 +468,7 @@ class GuiBuildNovel(QDialog): self.saveJsonH.triggered.connect(lambda: self._saveDocument(self.FMT_JSON_H)) self.saveMenu.addAction(self.saveJsonH) - self.saveJsonM = QAction(self.tr("JSON + novelWriters Markdown (.json)"), self) + self.saveJsonM = QAction(self.tr("JSON + novelWriter Markdown (.json)"), self) self.saveJsonM.triggered.connect(lambda: self._saveDocument(self.FMT_JSON_M)) self.saveMenu.addAction(self.saveJsonM) diff --git a/nw/gui/doceditor.py b/nw/gui/doceditor.py index f5269769..49841eb1 100644 --- a/nw/gui/doceditor.py +++ b/nw/gui/doceditor.py @@ -1330,7 +1330,7 @@ class GuiDocEditor(QTextEdit): else: self.theParent.makeAlert( - self.tr("Please selection some text before calling replace quotes."), + self.tr("Please select some text before calling replace quotes."), nwAlert.ERROR ) diff --git a/nw/gui/mainmenu.py b/nw/gui/mainmenu.py index dfba6ce1..92bd5717 100644 --- a/nw/gui/mainmenu.py +++ b/nw/gui/mainmenu.py @@ -989,7 +989,7 @@ class GuiMainMenu(QMenuBar): # Tools > Writing Stats self.aWritingStats = QAction(self.tr("Writing Statistics"), self) - self.aWritingStats.setStatusTip(self.tr("Show the writing statistics dialog")) + self.aWritingStats.setStatusTip(self.tr("Show the writing statistics dialogue")) self.aWritingStats.setShortcut("F6") self.aWritingStats.triggered.connect(lambda: self.theParent.showWritingStatsDialog()) self.toolsMenu.addAction(self.aWritingStats) diff --git a/nw/gui/preferences.py b/nw/gui/preferences.py index 2db6528e..e57519f2 100644 --- a/nw/gui/preferences.py +++ b/nw/gui/preferences.py @@ -380,7 +380,7 @@ class GuiPreferencesProjects(QWidget): self.mainForm.addRow( self.tr("Run backup when the project is closed"), self.backupOnClose, - self.tr("Can be overridden for individual projects in project settings.") + self.tr("Can be overridden for individual projects in Project Settings.") ) ## Ask before backup From 17070b88d35c50213c2b0f5e94a058e1c224b0f2 Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Wed, 24 Feb 2021 22:23:35 +0100 Subject: [PATCH 7/8] Add American English translation --- i18n/nw_en_US.ts | 4853 ++++++++++++++++++++++++++++++++++++++++++++++ novelWriter.pro | 1 + 2 files changed, 4854 insertions(+) create mode 100644 i18n/nw_en_US.ts diff --git a/i18n/nw_en_US.ts b/i18n/nw_en_US.ts new file mode 100644 index 00000000..b39a715c --- /dev/null +++ b/i18n/nw_en_US.ts @@ -0,0 +1,4853 @@ + + + + Common + + + in the future + + + + + just now + + + + + a minute ago + + + + + {0} minutes ago + + + + + an hour ago + + + + + {0} hours ago + + + + + a day ago + + + + + {0} days ago + + + + + a week ago + + + + + {0} weeks ago + + + + + a month ago + + + + + {0} months ago + + + + + a year ago + + + + + {0} years ago + + + + + Constant + + + None + + + + + Novel + + + + + Plot + + + + + Characters + + + + + Locations + + + + + Timeline + + + + + Objects + + + + + Entity + + + + + Custom + + + + + Outtakes + + + + + Trash + + + + + Title Page + + + + + Book + + + + + Plain Page + + + + + Partition + + + + + Unnumbered + + + + + Chapter + + + + + Scene + + + + + Note + + + + + Tag + + + + + Point of View + + + + + Focus + + + + + Entities + + + + + Title + + + + + Level + + + + + Document + + + + + Line + + + + + Chars + + + + + Words + + + + + Pars + + + + + POV + + + + + Synopsis + + + + + Straight single quotation mark + + + + + Straight double quotation mark + + + + + Left single quotation mark + + + + + Right single quotation mark + + + + + Single low-9 quotation mark + + + + + Single high-reversed-9 quotation mark + + + + + Left double quotation mark + + + + + Right double quotation mark + + + + + Double low-9 quotation mark + + + + + Double high-reversed-9 quotation mark + + + + + Double low-reversed-9 quotation mark + + + + + Single left-pointing angle quotation mark + + + + + Single right-pointing angle quotation mark + + + + + Double left-pointing angle quotation mark + + + + + Double right-pointing angle quotation mark + + + + + Left corner bracket + + + + + Right corner bracket + + + + + Left white corner bracket + + + + + Right white corner bracket + + + + + 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} + + + + + Author: {0} + + + + + Credit: {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. + + + + Licence: {0} + License: {0} + + + + 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} + + + + + 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} + + + + + GuiDocEditFooter + + + Status + + + + + Line: {0} ({1}) + + + + + Words: {0} ({1}) + + + + + Document size is {0} bytes + + + + + GuiDocEditHeader + + + Edit document meta + + + + + Search document + + + + + Toggle Focus Mode + + + + + Close the document + + + + + GuiDocEditSearch + + + Search + + + + + Replace + + + + + Case Sensitive + + + + + Match case + + + + + Whole Words Only + + + + + Match whole words + + + + + RegEx Mode + + + + + Search using regular expressions + + + + + Loop Search + + + + + Loop the search when reaching the end + + + + + Search Next File + + + + + Continue searching in the next file + + + + + Preserve Case + + + + + Preserve case on replace + + + + + Close Search + + + + + Close the search box [{0}] + + + + + Show/hide the replace text box + + + + + Find in current document + + + + + Find and replace in current document + + + + + GuiDocEditor + + + The document you are trying to open is too big. The document size is {0} MB. The maximum size allowed is {1} MB. + + + + + The text you are trying to add is too big. The text size is {0} MB. The maximum size allowed is {1} MB. + + + + + Spell check complete + + + + + File Location + + + + + The currently open file is saved in: + + + + + The document has grown too big and you cannot add more text to it. The maximum size of a single novelWriter document is {0} MB. + + + + + Follow Tag + + + + + Cut + + + + + Copy + + + + + Paste + + + + + Select All + + + + + Select Word + + + + + Select Paragraph + + + + + Spelling Suggestion(s) + + + + + No Suggestions + + + + + Add Word to Dictionary + + + + + Please select some text before calling replace quotes. + + + + + 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. + + + + + 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. + + + + + GuiDocViewFooter + + + Show/hide the references panel + + + + + Activate to freeze the content of the references panel when changing document + + + + + Show comments + + + + + Show synopsis comments + + + + + References + + + + + Sticky + + + + + Comments + + + + + Synopsis + + + + + GuiDocViewHeader + + + Go backward + + + + + Go forward + + + + + Reload the document + + + + + Close the document + + + + + GuiDocViewer + + + An error occurred while generating the preview. + + + + + Could not find the reference for tag '{0}'. It either doesn't exist, or the index is out of date. The index can be updated from the Tools menu, or by pressing {1}. + + + + + Copy + + + + + Select All + + + + + Select Word + + + + + Select Paragraph + + + + + GuiIcons + + + Could not load theme config file. + + + + + GuiItemDetails + + + Label + + + + + Status + + + + + Class + + + + + Layout + + + + + Characters + + + + + Words + + + + + Paragraphs + + + + + GuiItemEditor + + + Item Settings + + + + + Include when building project + + + + + Label + + + + + Status + + + + + Layout + + + + + 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? + + + + + GuiMainMenu + + + &Project + + + + + New Project + + + + + Create new project + + + + + Open Project + + + + + Open project + + + + + Save Project + + + + + Save project + + + + + Close Project + + + + + Close project + + + + + Project Settings + + + + + Project settings + + + + + Project Details + + + + + Project details + + + + + Create Root Folder + + + + + Novel Root + + + + + Plot Root + + + + + Character Root + + + + + Location Root + + + + + Timeline Root + + + + + Object Root + + + + + Entity Root + + + + + Custom Root + + + + + Outtakes Root + + + + + Create Folder + + + + + Create folder + + + + + Edit Item + + + + + Change project item settings + + + + + Delete Item + + + + + Delete selected project item + + + + + Move Item Up + + + + + Move project item up + + + + + Move Item Down + + + + + Move project item down + + + + + Undo Last Move + + + + + Undo last item move + + + + + Empty Trash + + + + + Permanently delete all files in the Trash folder + + + + + Exit + + + + + Exit novelWriter + + + + + &Document + + + + + New Document + + + + + Create new document + + + + + Open Document + + + + + Open selected document + + + + + Save Document + + + + + Save current document + + + + + Close Document + + + + + Close current document + + + + + View Document + + + + + View document as HTML + + + + + Close Document View + + + + + Close document view pane + + + + + Show File Details + + + + + Shows a message box with the document location in the project folder + + + + + Import from File + + + + + Import document from a text or markdown file + + + + + Merge Folder to Document + + + + + Merge a folder of documents to a single document + + + + + Split Document to Folder + + + + + Split a document into a folder of multiple documents + + + + + &Edit + + + + + Undo + + + + + Undo last change + + + + + Redo + + + + + Redo last change + + + + + Cut + + + + + Cut selected text + + + + + Copy + + + + + Copy selected text + + + + + Paste + + + + + Paste text from clipboard + + + + + Select All + + + + + Select all text in document + + + + + Select Paragraph + + + + + Select all text in paragraph + + + + + &View + + + + + Focus Project Tree + + + + + Move focus to project tree + + + + + Focus Document Editor + + + + + Move focus to left document pane + + + + + Focus Document Viewer + + + + + Move focus to right document pane + + + + + Focus Outline + + + + + Move focus to outline + + + + + Go Backward + + + + + Move backward in the view history of the right pane + + + + + Go Forward + + + + + Move forward in the view history of the right pane + + + + + Focus Mode + + + + + Toggles a distraction free mode, only showing text editor + + + + + Full Screen Mode + + + + + Maximises the main window + + + + + &Insert + + + + + Dashes + + + + + Short Dash + + + + + Insert short dash (en dash) + + + + + Long Dash + + + + + Insert long dash (em dash) + + + + + Horizontal Bar + + + + + Insert a horizontal bar (quotation dash) + + + + + Figure Dash + + + + + Insert figure dash (same width as a number character) + + + + + Quote Marks + + + + + Left Single Quote + + + + + Insert left single quote + + + + + Right Single Quote + + + + + Insert right single quote + + + + + Left Double Quote + + + + + Insert left double quote + + + + + Right Double Quote + + + + + Insert right double quote + + + + + Alternative Apostrophe + + + + + Insert modifier letter single apostrophe + + + + + General Punctuation + + + + + Ellipsis + + + + + Insert ellipsis + + + + + Prime + + + + + Insert a prime symbol + + + + + Double Prime + + + + + Insert a double prime symbol + + + + + Breaks and Spaces + + + + + Hard Line Break + + + + + Insert a hard line break + + + + + Non-Breaking Space + + + + + Insert a non-breaking space + + + + + Thin Space + + + + + Insert a thin space + + + + + Thin Non-Breaking Space + + + + + Insert a thin non-breaking space + + + + + Other Symbols + + + + + List Bullet + + + + + Insert a list bullet + + + + + Hyphen Bullet + + + + + Insert a hyphen bullet (alternative bullet) + + + + + Flower Mark + + + + + Insert a flower mark (alternative bullet) + + + + + Per Mille + + + + + Insert a per mille symbol + + + + + Degree Symbol + + + + + Insert a degree symbol + + + + + Minus Sign + + + + + Insert a minus sign (not a hypen or dash) + + + + + Times Sign + + + + + Insert a times sign (multiplication cross) + + + + + Division Sign + + + + + Insert a division sign + + + + + Tags and References + + + + + &Search + + + + + Find + + + + + Find text in document + + + + + Replace + + + + + Replace text in document + + + + + Find Next + + + + + Find next occurrence of text in document + + + + + Find Previous + + + + + Find previous occurrence of text in document + + + + + Replace Next + + + + + Find and replace next occurrence of text in document + + + + + &Format + + + + + Emphasis + + + + + Add emphasis to selected text (italic) + + + + + Strong Emphasis + + + + + Add strong emphasis to selected text (bold) + + + + + Strikethrough + + + + + Add strikethrough to selected text + + + + + Wrap Double Quotes + + + + + Wrap selected text in double quotes + + + + + Wrap Single Quotes + + + + + Wrap selected text in single quotes + + + + + Header 1 + + + + + Change the block format to Header 1 + + + + + Header 2 + + + + + Change the block format to Header 2 + + + + + Header 3 + + + + + Change the block format to Header 3 + + + + + Header 4 + + + + + Change the block format to Header 4 + + + + + Comment + + + + + Change the block format to comment + + + + + Remove Block Format + + + + + Strips block format + + + + + Replace Single Quotes + + + + + Replace all straight single quotes in selected text + + + + + Replace Double Quotes + + + + + Replace all straight double quotes in selected text + + + + + &Tools + + + + + Check Spelling + + + + + Toggle check spelling + + + + + Re-Run Spell Check + + + + + Run the spell checker on current document + + + + + Project Word List + + + + + Edit the project's word list + + + + + Rebuild Index + + + + + Rebuild the tag indices and word counts + + + + + Rebuild Outline + + + + + Rebuild the novel outline tree + + + + + Auto-Update Outline + + + + + Update project outline when a novel file is changed + + + + + Backup Project Folder + + + + + Backup Project + + + + + Build Novel Project + + + + + Launch the Build novel project tool + + + + + Writing Statistics + + + + + Preferences + + + + + &Help + + + + + About novelWriter + + + + + About Qt5 + + + + + Documentation (Local) + + + + + View local documentation with Qt Assistant + + + + + Documentation (Online) + + + + + View online documentation at {0} + + + + + Report an Issue (GitHub) + + + + + Report a bug or issue on GitHub at {0} + + + + + Ask a Question (GitHub) + + + + + Ask a question on GitHub at {0} + + + + + Latest Release (GitHub) + + + + + Open the Releases page on GitHub at {0} + + + + + The novelWriter Website + + + + + Open the novelWriter website at {0} + + + + + Show the writing statistics dialogue + Show the writing statistics dialog + + + + GuiMainStatus + + + None + + + + + Editor + + + + + Project + + + + + Session Time + + + + + Words: {0} ({1}) + + + + + Project word count (session change) + + + + + GuiNovelTree + + + Title + + + + + Words + + + + + POV + + + + + Section title + + + + + Word count + + + + + Point-of-view character + + + + + GuiOutlineDetails + + + Title + + + + + Chapter + + + + + Scene + + + + + Section + + + + + Document + + + + + Status + + + + + Characters + + + + + Words + + + + + Paragraphs + + + + + Synopsis + + + + + Title Details + + + + + Reference Tags + + + + + GuiOutlineHeaderMenu + + + Select Columns + + + + + GuiPreferences + + + Preferences + + + + + General + + + + + Projects + + + + + Documents + + + + + Editor + + + + + Highlighting + + + + + Automation + + + + + Some changes will not be applied until novelWriter has been restarted. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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 + + + + + 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 + + + + + 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). + + + + + GuiProjectDetails + + + Project Details + + + + + Overview + + + + + Contents + + + + + Close + + + + + GuiProjectDetailsContents + + + Title + + + + + Words + + + + + Pages + + + + + Page + + + + + Progress + + + + + Typical word count for a 5 by 8 inch book page with 11 pt font is 350. + + + + + Start counting page numbers from this page. + + + + + Assume a new chapter or partition always start on an odd numbered page. + + + + + Words per page + + + + + Count pages from + + + + + Clear double pages + + + + + Table of Contents + + + + + END + + + + + GuiProjectDetailsMain + + + Working Title: {0} + + + + + By {0} + + + + + Words + + + + + Chapters + + + + + Scenes + + + + + Revisions + + + + + Editing Time + + + + + Path + + + + + 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 + + + + + GuiProjectEditReplace + + + Keyword + + + + + Replace With + + + + + Save entry + + + + + Add new entry + + + + + Delete selected entry + + + + + Text Replace List for Preview and Export + + + + + GuiProjectEditStatus + + + New + + + + + Delete + + + + + Save + + + + + Colour + Color + + + + Name + + + + + Novel File Status Levels + + + + + Note File Importance Levels + + + + + Select Colour + Select Color + + + + New Item + + + + + Cannot delete status item that is in use. + + + + + {0} [{1}] + + + + + 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. + + + + + GuiProjectSettings + + + Project Settings + + + + + Settings + + + + + Status + + + + + Importance + + + + + Auto-Replace + + + + + GuiProjectTree + + + Label + + + + + Words + + + + + Inc + + + + + Flags + + + + + Item label + + + + + Word count + + + + + Include in build + + + + + Status, class, and layout flags + + + + + Please select a valid location in the tree to add the document. + + + + + Please select a valid location in the tree to add the folder. + + + + + Did not find anywhere to add the file or folder! + + + + + Cannot add new files or folders to the Trash folder. + + + + + New File + + + + + Cannot add new folder to this item. + + + + + Maximum folder depth has been reached. + + + + + New Folder + + + + + There is currently no Trash folder in this project. + + + + + The Trash folder is already empty. + + + + + Empty Trash + + + + + Permanently delete {0} file(s) from Trash? + + + + + Delete File + + + + + Permanently delete file '{0}'? + + + + + Move file '{0}' to Trash? + + + + + Cannot delete folder. It is not empty. Recursive deletion is not supported. Please delete the content first. + + + + + Cannot delete root folder. It is not empty. Recursive deletion is not supported. Please delete the content first. + + + + + The item cannot be moved to that location. + + + + + There is nowhere to add item with name '{0}'. + + + + + GuiProjectTreeMenu + + + Edit Project Item + + + + + Open Document + + + + + View Document + + + + + Toggle Included Flag + + + + + New File + + + + + New Folder + + + + + Delete Item + + + + + Empty Trash + + + + + Move Item Up + + + + + Move Item Down + + + + + GuiTheme + + + Could not load theme config file. + + + + + Could not load syntax file. + + + + + GuiWordList + + + Project Word List + + + + + Add new entry + + + + + Delete selected entry + + + + + Cannot add a blank word. + + + + + The word '{0}' is already in the word list. + + + + + 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. + + + + + NWDoc + + + Failed to open document file. + + + + + Opened Document: {0} + + + + + Could not save document. + + + + + Saved Document: {0} + + + + + Could not delete document file. + + + + + NWProject + + + Trash + + + + + Chapter + + + + + New + + + + + Note + + + + + Draft + + + + + Finished + + + + + Minor + + + + + Major + + + + + Main + + + + + New Project + + + + + By + + + + + Novel + + + + + Plot + + + + + Characters + + + + + World + + + + + Title Page + + + + + New Chapter + + + + + New Scene + + + + + Chapter {0} + + + + + Scene {0} + + + + + File not found: {0} + + + + + Failed to parse project xml. + + + + + Attempting to open backup project file instead. + + + + + Unknown + + + + + Project file does not appear to be a novelWriterXML file. + + + + + Unknown or unsupported novelWriter project file format. The project cannot be opened by this version of novelWriter. The file was saved with novelWriter version {0}. + + + + + Version Conflict + + + + + This project was saved by a newer version of novelWriter, version {0}. This is version {1}. If you continue to open the project, some attributes and settings may not be preserved, but the overall project should be fine. Continue opening the project? + + + + + Opened Project: {0} + + + + + Project path not set, cannot save project. + + + + + Failed to save project. + + + + + Saved Project: {0} + + + + + Backing up project ... + + + + + Cannot backup project because no backup path is set. Please set a valid backup location in Tools > Preferences. + + + + + Cannot backup project because no project name is set. Please set a Working Title in Project > Project Settings. + + + + + Cannot backup project because the backup path does not exist. Please set a valid backup location in Tools > Preferences. + + + + + Could not create backup folder. + + + + + Cannot backup project because the backup path is within the project folder to be backed up. Please choose a different backup path in Tools > Preferences. + + + + + Backup from {0} + + + + + Backup archive file written to: {0} + + + + + Could not write backup archive. + + + + + Project backed up to '{0}' + + + + + Failed to create a new example project. + + + + + Failed to create a new example project. Could not find the necessary files. They seem to be missing from this installation. + + + + + Could not create new project folder. + + + + + New project folder is not empty. Each project requires a dedicated project folder. + + + + + You must set a valid backup path in Preferences to use the automatic project backup feature. + + + + + You must set a valid project name in Project Settings to use the automatic project backup feature. + + + + + and + + + + + Found {0} orphaned file(s) in project folder. + + + + + Recovered + + + + + [{0}] {1} + + + + + Recovered File {0} + + + + + One or more orphaned files could not be added back into the project. Make sure at least a Novel root folder exists. + + + + + Not a folder: {0} + + + + + Could not move: {0} + + + + + Could not delete: {0} + + + + + Could not make folder: {0} + + + + + Could not move item {0} to {1}. + + + + + 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 + + + + + ProjWizardFinalPage + + + Finished + + + + + All done. + + + + + Press '{0}' to create the new project. + + + + + Done + + + + + Finish + + + + + 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 + + + + + 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) + + + + + 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 + + + + + QDialogButtonBox + + + OK + + + + + QGnomeTheme + + + &OK + + + + + &Save + + + + + &Cancel + + + + + &Close + + + + + Close without Saving + + + + + QPlatformTheme + + + OK + + + + + Save + + + + + Save All + + + + + Open + + + + + &Yes + + + + + Yes to &All + + + + + &No + + + + + N&o to All + + + + + Abort + + + + + Retry + + + + + Ignore + + + + + Close + + + + + Cancel + + + + + Discard + + + + + Help + + + + + Apply + + + + + Reset + + + + + Restore Defaults + + + + + QWizard + + + Go Back + + + + + < &Back + + + + + Continue + + + + + &Next + + + + + &Next > + + + + + Commit + + + + + Done + + + + + &Finish + + + + + Cancel + + + + + Help + + + + + &Help + + + + + Tokenizer + + + Synopsis + + + + + Document '{0}' is too big ({1} MB). Skipping. + + + + + ERROR + + + + diff --git a/novelWriter.pro b/novelWriter.pro index e7c46c9c..bdcca4ce 100644 --- a/novelWriter.pro +++ b/novelWriter.pro @@ -32,6 +32,7 @@ SOURCES += \ nw/guimain.py TRANSLATIONS += \ + i18n/nw_en_US.ts \ i18n/nw_fr.ts \ i18n/nw_nb_NO.ts \ i18n/nw_pt.ts From f491f5bf49fd556a7696cf9b62431eaa1254cf43 Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Wed, 24 Feb 2021 22:29:49 +0100 Subject: [PATCH 8/8] Fix broken test --- tests/test_gui/test_gui_about.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_gui/test_gui_about.py b/tests/test_gui/test_gui_about.py index 4ff5fc83..c2c9c6a7 100644 --- a/tests/test_gui/test_gui_about.py +++ b/tests/test_gui/test_gui_about.py @@ -55,7 +55,7 @@ def testGuiAbout_Dialog(qtbot, monkeypatch, nwGUI): assert msgAbout.pageNotes.toPlainText() == "Error loading release notes text ..." msgAbout._fillLicensePage() - assert msgAbout.pageLicense.toPlainText() == "Error loading license text ..." + assert msgAbout.pageLicense.toPlainText() == "Error loading licence text ..." msgAbout.showReleaseNotes() assert msgAbout.tabBox.currentWidget() == msgAbout.pageNotes