Merge 2.0.5 (#1363)
This commit is contained in:
@@ -33,3 +33,44 @@ jobs:
|
||||
novelwriter/assets/i18n/*.qm
|
||||
if-no-files-found: error
|
||||
retention-days: 1
|
||||
|
||||
buildMac:
|
||||
needs: buildAssets
|
||||
strategy:
|
||||
fail-fast: false
|
||||
runs-on: macos-12
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Get Version
|
||||
shell: bash
|
||||
run: |
|
||||
NW_VERSION=`awk '/^__version__/{print substr($NF,2,length($NF)-2)}' novelwriter/__init__.py`
|
||||
echo "novelWriter Version: $NW_VERSION"
|
||||
echo "VERSION=$NW_VERSION" >> $GITHUB_ENV
|
||||
|
||||
- name: Download Artifact
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: nw-assets-${{ github.sha }}
|
||||
path: novelwriter/assets
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
./setup/macos/build.sh
|
||||
|
||||
- name: Upload ZIP
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: novelWriter-${{ env.VERSION }}-macos.app.zip
|
||||
path: dist_macos/novelWriter-${{ env.VERSION }}.app.zip
|
||||
retention-days: 1
|
||||
|
||||
- name: Upload DMG
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: novelWriter-${{ env.VERSION }}-macos.dmg
|
||||
path: dist_macos/novelWriter-${{ env.VERSION }}.dmg
|
||||
retention-days: 1
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
setup.iss
|
||||
/novelwriter.desktop
|
||||
/novelWriter.pyw
|
||||
/setup/macos/Info.plist
|
||||
|
||||
# Translations
|
||||
/novelwriter/assets/i18n/*.qm
|
||||
|
||||
+72
-14
@@ -1,5 +1,63 @@
|
||||
# novelWriter Changelog
|
||||
|
||||
## Version 2.0.5 [2023-02-12]
|
||||
|
||||
### Release Notes
|
||||
|
||||
This is a patch release that fixes a number of minor bugs and usability issues.
|
||||
|
||||
The Project Details dialog now properly updates when another project is opened, and the "Total
|
||||
editing time" value has a less ambiguous time format. The editor no longer inserts blank lines if
|
||||
block formats are applied to an empty line. The optional last column in the Novel Tree will now
|
||||
show all items of the selected type, not only the first, and the column size can be adjusted from
|
||||
the same menu where the column content is selected. The Open Document build output has been updated
|
||||
to ODF 1.3 extended format, and passes validation.
|
||||
|
||||
An Italian translation has been added, and Russian is currently available for project builds. A
|
||||
full translation into Russian is on its way.
|
||||
|
||||
### Detailed Changelog
|
||||
|
||||
**Bugfixes**
|
||||
|
||||
* Fixed an issue where the Title, Project Name and Author values of the Project Dialog would not
|
||||
refresh when a project was closed and another opened. The issue is with the Qt library and
|
||||
caching of the dialog, but novelWriter forces a refresh of the labels. These three were
|
||||
previously missing though. Issue #1336. PR #1339.
|
||||
* Add a check to the data storage class that a path exists before it is returned to other classes
|
||||
that uses them for file I/O. Issue #1317. PR #1342.
|
||||
* Fixed some issues with the Open Document build format as the produced document wasn't compliant
|
||||
with the standard. It is now compliant with ODF 1.3 extended format. Issue #1359. PR #1360.
|
||||
|
||||
**Usability Fixes**
|
||||
|
||||
* The "Total editing time" label on the Project Details dialog now uses the same time format as the
|
||||
status bar. That is, HH:MM:SS for times less than 24 hours, and D-HH:MM:SS for times from 24
|
||||
hours and above. Issue #1335. PR #1339.
|
||||
* Fixed an issue where applying block formatting to an empty line would insert a blank line before
|
||||
it. This is a consequence of the change from #1175. The line break is now only added if the line
|
||||
is _not_ blank. Issues #1349 and #1350. PR #1354.
|
||||
* The optional third column in the Novel Tree now shows all references for the selected category
|
||||
instead of just the first one. The maximum width of the column can also be selected from the
|
||||
Novel Tree config menu. Issue #1351. PR #1355.
|
||||
* The Open Document produced by the build tool now has the necessary title and author meta data set
|
||||
so that it can be used in LibreOffice. Other meta data has also been added. Issue #1359.
|
||||
PR #1360.
|
||||
|
||||
**Internationalisation**
|
||||
|
||||
* Existing translations for US English, Norwegian, Brazilian Portuguese, Latin American Spanish,
|
||||
and German have been updated. French and Dutch are partially updated. PR #1341.
|
||||
* Russian project variables have been added. Full translation is forthcoming. Contributed by
|
||||
Aleksey (@SKYnv). PR #1341.
|
||||
* A complete Italian translation has been added. Contributed by Riccardo Mangili. PR #1341.
|
||||
|
||||
**Packaging**
|
||||
|
||||
* Added App Bundle and DMG packages for MacOS. Contributed by @Ryex. PRs #1276 and #1340.
|
||||
|
||||
----
|
||||
|
||||
## Version 2.0.4 [2023-01-29]
|
||||
|
||||
### Release Notes
|
||||
@@ -11,8 +69,8 @@ installed and imported.
|
||||
|
||||
**Bugfixes**
|
||||
|
||||
* Fix an issue with the version check against PyQt5, which was imported from the wrong package when
|
||||
running novelWriter with PyQt5 version 5.15.8, released 2023-01-28. Issue #1324. PR #1325.
|
||||
* Fixed an issue with the version check against PyQt5, which was imported from the wrong package
|
||||
when running novelWriter with PyQt5 version 5.15.8, released 2023-01-28. Issue #1324. PR #1325.
|
||||
|
||||
----
|
||||
|
||||
@@ -32,15 +90,15 @@ dialog box, replacing the Credits section on the main About tab.
|
||||
|
||||
**Bugfixes**
|
||||
|
||||
* Fix an issue with one of the active icons for the project tree. The SVG paths were not properly
|
||||
* Fixed an issue with one of the active icons for the project tree. The SVG paths were not properly
|
||||
joined. Issue #1297. PR #1299.
|
||||
* Fix an issue where the new open project routine for 2.0 would not check that a project exists
|
||||
* Fixed an issue where the new open project routine for 2.0 would not check that a project exists
|
||||
before trying to open it. This resulted in the open process creating all the expected folders in
|
||||
the designated location before realising there was no project there. Issue #1300. PR #1301.
|
||||
* Fix an issue with the convert folder to document or note functionality was no longer working. The
|
||||
context menu entries were actually just calling the function for converting a file. Issue #1305.
|
||||
PR #1306.
|
||||
* Fix an issue where the app may crash if an item is added as a child of an item that exists, but
|
||||
* Fixed an issue with the convert folder to document or note functionality was no longer working.
|
||||
The context menu entries were actually just calling the function for converting a file.
|
||||
Issue #1305. PR #1306.
|
||||
* Fixed an issue where the app may crash if an item is added as a child of an item that exists, but
|
||||
has invalid settings such that it is rejected by the project tree builder function when the
|
||||
project is opened. Now, only items with a parent item that has already been added will be allowed
|
||||
into the project tree. The issue was caused by an invalid project file, and is not likely to
|
||||
@@ -52,7 +110,7 @@ dialog box, replacing the Credits section on the main About tab.
|
||||
* The CREDITS.md file has been updated, and its content is now also available in a "Credits" tab in
|
||||
the About dialog in the app. The old credits section of the "About" tab has been removed.
|
||||
PR #1298.
|
||||
* Fix a usability issue where double-clicking an entry in the Outline that belongs to a document
|
||||
* Fixed a usability issue where double-clicking an entry in the Outline that belongs to a document
|
||||
that is already open in the editor does nothing. Now, the app switches view to the editor when
|
||||
the heading is clicked. Issue #1291. PR #1306.
|
||||
* Change how the editing of status and importance labels work in Project Settings. The form at the
|
||||
@@ -83,7 +141,7 @@ highlighting preferences were changed. It also fixes an issue that broke the Fre
|
||||
|
||||
**Bugfixes**
|
||||
|
||||
* Fix an issue where changing the Highlighting Preferences for highlighting quotes, emphasis, and
|
||||
* Fixed an issue where changing the Highlighting Preferences for highlighting quotes, emphasis, and
|
||||
multiple or trailing spaces would not reload the syntax highlighter in the editor. The changes
|
||||
would only take effect after restarting the app. Issue #1274. PR #1278.
|
||||
|
||||
@@ -105,7 +163,7 @@ updated to include the icon theme setting. The patch also updates the French tra
|
||||
|
||||
**Bugfixes**
|
||||
|
||||
* Fix an issue where starting the app with a custom GUI theme enabled would not load any icons at
|
||||
* Fixed an issue where starting the app with a custom GUI theme enabled would not load any icons at
|
||||
all if the `icontheme` setting isn't specified. The app now loads the `typicons_light` theme by
|
||||
default if no icon theme is set. Issue #1263. PR #1264.
|
||||
|
||||
@@ -194,7 +252,7 @@ icons. They are technically no longer tree views, but rather a Table of Contents
|
||||
novel root folder. If you have multiple novel root folders, you can select which one to view.
|
||||
|
||||
In the Novel Tree View, you now also have the option to hide or show a third column of data.
|
||||
Currently, you can chose between "Point of View Character", "Focus Character" and "Novel Plot". If
|
||||
Currently, you can choose between "Point of View Character", "Focus Character" and "Novel Plot". If
|
||||
you referenced more than one in the document, the column will only show the first entry, so make
|
||||
sure the most important one is listed first in your document if you use this feature. An arrow icon
|
||||
is also visible at the end of each row in the tree, and if you click on it, a tool tip should pop
|
||||
@@ -248,7 +306,7 @@ _These Release Notes also include the changes from 2.0 pre-releases._
|
||||
|
||||
**Code Improvements**
|
||||
|
||||
* Fix an issue with circular imports mainly triggered from the test suite. PR #1166.
|
||||
* Fixed an issue with circular imports mainly triggered from the test suite. PR #1166.
|
||||
* Instead of assigning headers in a document a key by its line number, the headings are now
|
||||
assigned sequential keys. This makes it easier to detect actual meta data changes, which would
|
||||
otherwise be triggered by a change of line number as well. PR #1241.
|
||||
@@ -386,7 +444,7 @@ Interface. PR #1146.
|
||||
|
||||
**Bugfixes**
|
||||
|
||||
* Fix a typo in the Lorem Ipsum tool and set a max width for the views bar. PR #1065.
|
||||
* Fixed a typo in the Lorem Ipsum tool and set a max width for the views bar. PR #1065.
|
||||
* The language set in the Build Tool is now properly exported to Open Document files. Previously,
|
||||
it would be set to English regardless of the user's selection. Issue #1073. PR #1077.
|
||||
* Since the text editor cursor extends to the right of its position in the window, it would
|
||||
|
||||
@@ -20,6 +20,7 @@ translators for the languages currently available:
|
||||
* Dutch: Martijn van der Kleijn (@mvdkleijn)
|
||||
* French: Jan Lüdke (@jyhelle)
|
||||
* German: Myian (@heymyian)
|
||||
* Italian: Riccardo Mangili
|
||||
* Latin American Spanish: Tommy Marplatt (@tmarplatt)
|
||||
* Norwegian: Veronica Berglyd Olsen (@vkbo)
|
||||
* Portuguese: Bruno Meneguello (@bkmeneguello)
|
||||
|
||||
+87
-76
@@ -4,72 +4,72 @@
|
||||
<context>
|
||||
<name>Common</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="333" />
|
||||
<location filename="../novelwriter/common.py" line="306" />
|
||||
<source>in the future</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="337" />
|
||||
<location filename="../novelwriter/common.py" line="310" />
|
||||
<source>just now</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="341" />
|
||||
<location filename="../novelwriter/common.py" line="314" />
|
||||
<source>a minute ago</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="345" />
|
||||
<location filename="../novelwriter/common.py" line="318" />
|
||||
<source>{0} minutes ago</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="349" />
|
||||
<location filename="../novelwriter/common.py" line="322" />
|
||||
<source>an hour ago</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="353" />
|
||||
<location filename="../novelwriter/common.py" line="326" />
|
||||
<source>{0} hours ago</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="357" />
|
||||
<location filename="../novelwriter/common.py" line="330" />
|
||||
<source>a day ago</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="361" />
|
||||
<location filename="../novelwriter/common.py" line="334" />
|
||||
<source>{0} days ago</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="365" />
|
||||
<location filename="../novelwriter/common.py" line="338" />
|
||||
<source>a week ago</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="369" />
|
||||
<location filename="../novelwriter/common.py" line="342" />
|
||||
<source>{0} weeks ago</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="373" />
|
||||
<location filename="../novelwriter/common.py" line="346" />
|
||||
<source>a month ago</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="377" />
|
||||
<location filename="../novelwriter/common.py" line="350" />
|
||||
<source>{0} months ago</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="381" />
|
||||
<location filename="../novelwriter/common.py" line="354" />
|
||||
<source>a year ago</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="385" />
|
||||
<location filename="../novelwriter/common.py" line="358" />
|
||||
<source>{0} years ago</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
@@ -757,32 +757,32 @@
|
||||
<context>
|
||||
<name>GuiDocEditFooter</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2924" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2931" />
|
||||
<source>Status</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3073" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3080" />
|
||||
<source>Line: {0} ({1})</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3102" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3109" />
|
||||
<source>Words: {0} ({1})</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3107" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3114" />
|
||||
<source>Document size is {0} bytes</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3119" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3126" />
|
||||
<source>Words: {0} selected</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3122" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3129" />
|
||||
<source>Character count: {0}</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
@@ -790,22 +790,22 @@
|
||||
<context>
|
||||
<name>GuiDocEditHeader</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2694" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2701" />
|
||||
<source>Edit document label</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2703" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2710" />
|
||||
<source>Search document</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2712" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2719" />
|
||||
<source>Toggle Focus Mode</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2721" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2728" />
|
||||
<source>Close the document</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
@@ -813,58 +813,58 @@
|
||||
<context>
|
||||
<name>GuiDocEditSearch</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2287" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2274" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2294" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2281" />
|
||||
<source>Search</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2279" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2286" />
|
||||
<source>Replace</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2295" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2302" />
|
||||
<source>Case Sensitive</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2301" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2308" />
|
||||
<source>Whole Words Only</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2307" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2314" />
|
||||
<source>RegEx Mode</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2313" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2320" />
|
||||
<source>Loop Search</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2319" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2326" />
|
||||
<source>Search Next File</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2327" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2334" />
|
||||
<source>Preserve Case</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2335" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2342" />
|
||||
<source>Close Search</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2351" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2358" />
|
||||
<source>Find in current document</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2356" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2363" />
|
||||
<source>Find and replace in current document</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
@@ -2050,55 +2050,66 @@
|
||||
<context>
|
||||
<name>GuiNovelToolBar</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="207" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="216" />
|
||||
<source>Outline of {0}</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="215" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="224" />
|
||||
<source>Novel Root</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="221" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="230" />
|
||||
<source>Refresh</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="228" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="237" />
|
||||
<source>Last Column</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="231" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="240" />
|
||||
<source>Hidden</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="232" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="241" />
|
||||
<source>Point of View Character</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="233" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="242" />
|
||||
<source>Focus Character</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="234" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="243" />
|
||||
<source>Novel Plot</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="237" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="361" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="246" />
|
||||
<source>Column Size</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="250" />
|
||||
<source>More Options</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="361" />
|
||||
<source>Maximum column size in %</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GuiNovelTree</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="778" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="815" />
|
||||
<source>No meta data</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
@@ -2884,72 +2895,72 @@
|
||||
<context>
|
||||
<name>GuiProjectDetailsContents</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="295" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="297" />
|
||||
<source>Table of Contents</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="314" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="316" />
|
||||
<source>Title</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="315" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="317" />
|
||||
<source>Words</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="316" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="318" />
|
||||
<source>Pages</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="317" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="319" />
|
||||
<source>Page</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="318" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="320" />
|
||||
<source>Progress</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="353" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="355" />
|
||||
<source>Typical word count for a 5 by 8 inch book page with 11 pt font is 350.</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="356" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="358" />
|
||||
<source>Start counting page numbers from this page.</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="359" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="361" />
|
||||
<source>Assume a new chapter or partition always start on an odd numbered page.</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="362" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="364" />
|
||||
<source>Words per page</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="373" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="375" />
|
||||
<source>Count pages from</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="384" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="386" />
|
||||
<source>Clear double pages</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="447" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="449" />
|
||||
<source>END</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="501" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="503" />
|
||||
<source>Untitled</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
@@ -2957,45 +2968,45 @@
|
||||
<context>
|
||||
<name>GuiProjectDetailsMain</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="168" />
|
||||
<source>Working Title: {0}</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="177" />
|
||||
<source>By {0}</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="187" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="185" />
|
||||
<source>Words</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="190" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="188" />
|
||||
<source>Chapters</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="193" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="191" />
|
||||
<source>Scenes</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="196" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="194" />
|
||||
<source>Revisions</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="199" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="197" />
|
||||
<source>Editing Time</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="219" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="217" />
|
||||
<source>Path</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="253" />
|
||||
<source>Project: {0}</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="254" />
|
||||
<source>By {0}</source>
|
||||
<translation type="unfinished" />
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GuiProjectEditMain</name>
|
||||
|
||||
+87
-76
@@ -4,72 +4,72 @@
|
||||
<context>
|
||||
<name>Common</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="333" />
|
||||
<location filename="../novelwriter/common.py" line="306" />
|
||||
<source>in the future</source>
|
||||
<translation>in der Zukunft</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="337" />
|
||||
<location filename="../novelwriter/common.py" line="310" />
|
||||
<source>just now</source>
|
||||
<translation>gerade eben</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="341" />
|
||||
<location filename="../novelwriter/common.py" line="314" />
|
||||
<source>a minute ago</source>
|
||||
<translation>vor einer Minute</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="345" />
|
||||
<location filename="../novelwriter/common.py" line="318" />
|
||||
<source>{0} minutes ago</source>
|
||||
<translation>{0} Minuten her</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="349" />
|
||||
<location filename="../novelwriter/common.py" line="322" />
|
||||
<source>an hour ago</source>
|
||||
<translation>eine Stunde her</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="353" />
|
||||
<location filename="../novelwriter/common.py" line="326" />
|
||||
<source>{0} hours ago</source>
|
||||
<translation>{0} Stunden her</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="357" />
|
||||
<location filename="../novelwriter/common.py" line="330" />
|
||||
<source>a day ago</source>
|
||||
<translation>einen Tag her</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="361" />
|
||||
<location filename="../novelwriter/common.py" line="334" />
|
||||
<source>{0} days ago</source>
|
||||
<translation>{0} Tage her</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="365" />
|
||||
<location filename="../novelwriter/common.py" line="338" />
|
||||
<source>a week ago</source>
|
||||
<translation>eine Woche her</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="369" />
|
||||
<location filename="../novelwriter/common.py" line="342" />
|
||||
<source>{0} weeks ago</source>
|
||||
<translation>{0} Wochen her</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="373" />
|
||||
<location filename="../novelwriter/common.py" line="346" />
|
||||
<source>a month ago</source>
|
||||
<translation>einen Monat her</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="377" />
|
||||
<location filename="../novelwriter/common.py" line="350" />
|
||||
<source>{0} months ago</source>
|
||||
<translation>{0} Monate her</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="381" />
|
||||
<location filename="../novelwriter/common.py" line="354" />
|
||||
<source>a year ago</source>
|
||||
<translation>ein Jahr her</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="385" />
|
||||
<location filename="../novelwriter/common.py" line="358" />
|
||||
<source>{0} years ago</source>
|
||||
<translation>{0} Jahre her</translation>
|
||||
</message>
|
||||
@@ -757,32 +757,32 @@
|
||||
<context>
|
||||
<name>GuiDocEditFooter</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2924" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2931" />
|
||||
<source>Status</source>
|
||||
<translation>Status</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3073" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3080" />
|
||||
<source>Line: {0} ({1})</source>
|
||||
<translation>Zeile: {0} ({1})</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3102" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3109" />
|
||||
<source>Words: {0} ({1})</source>
|
||||
<translation>Wörter: {0} ({1})</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3107" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3114" />
|
||||
<source>Document size is {0} bytes</source>
|
||||
<translation>Dateigröße: {0} bytes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3119" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3126" />
|
||||
<source>Words: {0} selected</source>
|
||||
<translation>Wörter: {0} markiert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3122" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3129" />
|
||||
<source>Character count: {0}</source>
|
||||
<translation>Zeichenanzahl: {0}</translation>
|
||||
</message>
|
||||
@@ -790,22 +790,22 @@
|
||||
<context>
|
||||
<name>GuiDocEditHeader</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2694" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2701" />
|
||||
<source>Edit document label</source>
|
||||
<translation>Name des Dokuments ändern</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2703" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2710" />
|
||||
<source>Search document</source>
|
||||
<translation>Dokument durchsuchen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2712" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2719" />
|
||||
<source>Toggle Focus Mode</source>
|
||||
<translation>Ablenkungsfrei ein/aus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2721" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2728" />
|
||||
<source>Close the document</source>
|
||||
<translation>Dokument schließen</translation>
|
||||
</message>
|
||||
@@ -813,58 +813,58 @@
|
||||
<context>
|
||||
<name>GuiDocEditSearch</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2287" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2274" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2294" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2281" />
|
||||
<source>Search</source>
|
||||
<translation>Suchen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2279" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2286" />
|
||||
<source>Replace</source>
|
||||
<translation>Ersetzen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2295" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2302" />
|
||||
<source>Case Sensitive</source>
|
||||
<translation>Groß-/Kleinschreibung beachten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2301" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2308" />
|
||||
<source>Whole Words Only</source>
|
||||
<translation>Nur ganze Wörter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2307" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2314" />
|
||||
<source>RegEx Mode</source>
|
||||
<translation>RegEx-Modus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2313" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2320" />
|
||||
<source>Loop Search</source>
|
||||
<translation>Suche am Anfang fortsetzen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2319" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2326" />
|
||||
<source>Search Next File</source>
|
||||
<translation>Nächstes Dokument durchsuchen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2327" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2334" />
|
||||
<source>Preserve Case</source>
|
||||
<translation>Groß-/Kleinschreibung beibehalten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2335" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2342" />
|
||||
<source>Close Search</source>
|
||||
<translation>Suche schließen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2351" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2358" />
|
||||
<source>Find in current document</source>
|
||||
<translation>Im geöffneten Dokument suchen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2356" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2363" />
|
||||
<source>Find and replace in current document</source>
|
||||
<translation>Im geöffneten Dokument suchen und ersetzen</translation>
|
||||
</message>
|
||||
@@ -2050,55 +2050,66 @@
|
||||
<context>
|
||||
<name>GuiNovelToolBar</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="207" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="216" />
|
||||
<source>Outline of {0}</source>
|
||||
<translation>Gliederung für {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="215" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="224" />
|
||||
<source>Novel Root</source>
|
||||
<translation>Hauptordner für den Roman</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="221" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="230" />
|
||||
<source>Refresh</source>
|
||||
<translation>Aktualisieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="228" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="237" />
|
||||
<source>Last Column</source>
|
||||
<translation>Letzte Spalte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="231" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="240" />
|
||||
<source>Hidden</source>
|
||||
<translation>Ausblenden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="232" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="241" />
|
||||
<source>Point of View Character</source>
|
||||
<translation>Erzählperspektive</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="233" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="242" />
|
||||
<source>Focus Character</source>
|
||||
<translation>Figur im Mittelpunkt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="234" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="243" />
|
||||
<source>Novel Plot</source>
|
||||
<translation>Romanhandlung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="237" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="361" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="246" />
|
||||
<source>Column Size</source>
|
||||
<translation>Spaltenbreite</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="250" />
|
||||
<source>More Options</source>
|
||||
<translation>Weitere Optionen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="361" />
|
||||
<source>Maximum column size in %</source>
|
||||
<translation>Maximale Spaltenbreite in %</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GuiNovelTree</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="778" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="815" />
|
||||
<source>No meta data</source>
|
||||
<translation>Keine Meta-Daten</translation>
|
||||
</message>
|
||||
@@ -2884,72 +2895,72 @@
|
||||
<context>
|
||||
<name>GuiProjectDetailsContents</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="295" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="297" />
|
||||
<source>Table of Contents</source>
|
||||
<translation>Inhaltsverzeichnis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="314" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="316" />
|
||||
<source>Title</source>
|
||||
<translation>Name</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="315" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="317" />
|
||||
<source>Words</source>
|
||||
<translation>Wörter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="316" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="318" />
|
||||
<source>Pages</source>
|
||||
<translation>Seiten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="317" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="319" />
|
||||
<source>Page</source>
|
||||
<translation>Seite</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="318" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="320" />
|
||||
<source>Progress</source>
|
||||
<translation>Fortschritt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="353" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="355" />
|
||||
<source>Typical word count for a 5 by 8 inch book page with 11 pt font is 350.</source>
|
||||
<translation>Üblicherweise sind ca. 350 Wörter auf einer Buchseite (5 x 8 Zoll, 11 pt).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="356" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="358" />
|
||||
<source>Start counting page numbers from this page.</source>
|
||||
<translation>Ab dieser Seite mit arabischen Ziffern beginnen zu zählen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="359" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="361" />
|
||||
<source>Assume a new chapter or partition always start on an odd numbered page.</source>
|
||||
<translation>Angenommen ein neues Kapitel oder neuer Teil beginnt immer auf einer ungeraden Seite.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="362" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="364" />
|
||||
<source>Words per page</source>
|
||||
<translation>Wörter pro Seite</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="373" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="375" />
|
||||
<source>Count pages from</source>
|
||||
<translation>Seiten zählen ab</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="384" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="386" />
|
||||
<source>Clear double pages</source>
|
||||
<translation>Leere linke Seiten auslassen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="447" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="449" />
|
||||
<source>END</source>
|
||||
<translation>ENDE</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="501" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="503" />
|
||||
<source>Untitled</source>
|
||||
<translation>Ohne Titel</translation>
|
||||
</message>
|
||||
@@ -2957,45 +2968,45 @@
|
||||
<context>
|
||||
<name>GuiProjectDetailsMain</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="168" />
|
||||
<source>Working Title: {0}</source>
|
||||
<translation>Arbeitstitel: {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="177" />
|
||||
<source>By {0}</source>
|
||||
<translation>Von {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="187" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="185" />
|
||||
<source>Words</source>
|
||||
<translation>Wörter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="190" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="188" />
|
||||
<source>Chapters</source>
|
||||
<translation>Kapitel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="193" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="191" />
|
||||
<source>Scenes</source>
|
||||
<translation>Szenen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="196" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="194" />
|
||||
<source>Revisions</source>
|
||||
<translation>Revisionen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="199" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="197" />
|
||||
<source>Editing Time</source>
|
||||
<translation>Bearbeitungszeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="219" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="217" />
|
||||
<source>Path</source>
|
||||
<translation>Pfad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="253" />
|
||||
<source>Project: {0}</source>
|
||||
<translation>Projekt: {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="254" />
|
||||
<source>By {0}</source>
|
||||
<translation>Von {0}</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GuiProjectEditMain</name>
|
||||
|
||||
+87
-76
@@ -4,72 +4,72 @@
|
||||
<context>
|
||||
<name>Common</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="333" />
|
||||
<location filename="../novelwriter/common.py" line="306" />
|
||||
<source>in the future</source>
|
||||
<translation>in the future</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="337" />
|
||||
<location filename="../novelwriter/common.py" line="310" />
|
||||
<source>just now</source>
|
||||
<translation>just now</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="341" />
|
||||
<location filename="../novelwriter/common.py" line="314" />
|
||||
<source>a minute ago</source>
|
||||
<translation>a minute ago</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="345" />
|
||||
<location filename="../novelwriter/common.py" line="318" />
|
||||
<source>{0} minutes ago</source>
|
||||
<translation>{0} minutes ago</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="349" />
|
||||
<location filename="../novelwriter/common.py" line="322" />
|
||||
<source>an hour ago</source>
|
||||
<translation>an hour ago</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="353" />
|
||||
<location filename="../novelwriter/common.py" line="326" />
|
||||
<source>{0} hours ago</source>
|
||||
<translation>{0} hours ago</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="357" />
|
||||
<location filename="../novelwriter/common.py" line="330" />
|
||||
<source>a day ago</source>
|
||||
<translation>a day ago</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="361" />
|
||||
<location filename="../novelwriter/common.py" line="334" />
|
||||
<source>{0} days ago</source>
|
||||
<translation>{0} days ago</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="365" />
|
||||
<location filename="../novelwriter/common.py" line="338" />
|
||||
<source>a week ago</source>
|
||||
<translation>a week ago</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="369" />
|
||||
<location filename="../novelwriter/common.py" line="342" />
|
||||
<source>{0} weeks ago</source>
|
||||
<translation>{0} weeks ago</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="373" />
|
||||
<location filename="../novelwriter/common.py" line="346" />
|
||||
<source>a month ago</source>
|
||||
<translation>a month ago</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="377" />
|
||||
<location filename="../novelwriter/common.py" line="350" />
|
||||
<source>{0} months ago</source>
|
||||
<translation>{0} months ago</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="381" />
|
||||
<location filename="../novelwriter/common.py" line="354" />
|
||||
<source>a year ago</source>
|
||||
<translation>a year ago</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="385" />
|
||||
<location filename="../novelwriter/common.py" line="358" />
|
||||
<source>{0} years ago</source>
|
||||
<translation>{0} years ago</translation>
|
||||
</message>
|
||||
@@ -757,32 +757,32 @@
|
||||
<context>
|
||||
<name>GuiDocEditFooter</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2924" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2931" />
|
||||
<source>Status</source>
|
||||
<translation>Status</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3073" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3080" />
|
||||
<source>Line: {0} ({1})</source>
|
||||
<translation>Line: {0} ({1})</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3102" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3109" />
|
||||
<source>Words: {0} ({1})</source>
|
||||
<translation>Words: {0} ({1})</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3107" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3114" />
|
||||
<source>Document size is {0} bytes</source>
|
||||
<translation>Document size is {0} bytes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3119" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3126" />
|
||||
<source>Words: {0} selected</source>
|
||||
<translation>Words: {0} selected</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3122" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3129" />
|
||||
<source>Character count: {0}</source>
|
||||
<translation>Character count: {0}</translation>
|
||||
</message>
|
||||
@@ -790,22 +790,22 @@
|
||||
<context>
|
||||
<name>GuiDocEditHeader</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2694" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2701" />
|
||||
<source>Edit document label</source>
|
||||
<translation>Edit document label</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2703" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2710" />
|
||||
<source>Search document</source>
|
||||
<translation>Search document</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2712" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2719" />
|
||||
<source>Toggle Focus Mode</source>
|
||||
<translation>Toggle Focus Mode</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2721" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2728" />
|
||||
<source>Close the document</source>
|
||||
<translation>Close the document</translation>
|
||||
</message>
|
||||
@@ -813,58 +813,58 @@
|
||||
<context>
|
||||
<name>GuiDocEditSearch</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2287" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2274" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2294" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2281" />
|
||||
<source>Search</source>
|
||||
<translation>Search</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2279" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2286" />
|
||||
<source>Replace</source>
|
||||
<translation>Replace</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2295" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2302" />
|
||||
<source>Case Sensitive</source>
|
||||
<translation>Case Sensitive</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2301" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2308" />
|
||||
<source>Whole Words Only</source>
|
||||
<translation>Whole Words Only</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2307" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2314" />
|
||||
<source>RegEx Mode</source>
|
||||
<translation>RegEx Mode</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2313" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2320" />
|
||||
<source>Loop Search</source>
|
||||
<translation>Loop Search</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2319" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2326" />
|
||||
<source>Search Next File</source>
|
||||
<translation>Search Next File</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2327" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2334" />
|
||||
<source>Preserve Case</source>
|
||||
<translation>Preserve Case</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2335" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2342" />
|
||||
<source>Close Search</source>
|
||||
<translation>Close Search</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2351" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2358" />
|
||||
<source>Find in current document</source>
|
||||
<translation>Find in current document</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2356" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2363" />
|
||||
<source>Find and replace in current document</source>
|
||||
<translation>Find and replace in current document</translation>
|
||||
</message>
|
||||
@@ -2050,55 +2050,66 @@
|
||||
<context>
|
||||
<name>GuiNovelToolBar</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="207" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="216" />
|
||||
<source>Outline of {0}</source>
|
||||
<translation>Outline of {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="215" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="224" />
|
||||
<source>Novel Root</source>
|
||||
<translation>Novel Root</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="221" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="230" />
|
||||
<source>Refresh</source>
|
||||
<translation>Refresh</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="228" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="237" />
|
||||
<source>Last Column</source>
|
||||
<translation>Last Column</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="231" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="240" />
|
||||
<source>Hidden</source>
|
||||
<translation>Hidden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="232" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="241" />
|
||||
<source>Point of View Character</source>
|
||||
<translation>Point of View Character</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="233" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="242" />
|
||||
<source>Focus Character</source>
|
||||
<translation>Focus Character</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="234" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="243" />
|
||||
<source>Novel Plot</source>
|
||||
<translation>Novel Plot</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="237" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="361" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="246" />
|
||||
<source>Column Size</source>
|
||||
<translation>Column Size</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="250" />
|
||||
<source>More Options</source>
|
||||
<translation>More Options</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="361" />
|
||||
<source>Maximum column size in %</source>
|
||||
<translation>Maximum column size in %</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GuiNovelTree</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="778" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="815" />
|
||||
<source>No meta data</source>
|
||||
<translation>No meta data</translation>
|
||||
</message>
|
||||
@@ -2884,72 +2895,72 @@
|
||||
<context>
|
||||
<name>GuiProjectDetailsContents</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="295" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="297" />
|
||||
<source>Table of Contents</source>
|
||||
<translation>Table of Contents</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="314" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="316" />
|
||||
<source>Title</source>
|
||||
<translation>Title</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="315" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="317" />
|
||||
<source>Words</source>
|
||||
<translation>Words</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="316" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="318" />
|
||||
<source>Pages</source>
|
||||
<translation>Pages</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="317" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="319" />
|
||||
<source>Page</source>
|
||||
<translation>Page</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="318" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="320" />
|
||||
<source>Progress</source>
|
||||
<translation>Progress</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="353" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="355" />
|
||||
<source>Typical word count for a 5 by 8 inch book page with 11 pt font is 350.</source>
|
||||
<translation>Typical word count for a 5 by 8 inch book page with 11 pt font is 350.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="356" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="358" />
|
||||
<source>Start counting page numbers from this page.</source>
|
||||
<translation>Start counting page numbers from this page.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="359" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="361" />
|
||||
<source>Assume a new chapter or partition always start on an odd numbered page.</source>
|
||||
<translation>Assume a new chapter or partition always start on an odd numbered page.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="362" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="364" />
|
||||
<source>Words per page</source>
|
||||
<translation>Words per page</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="373" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="375" />
|
||||
<source>Count pages from</source>
|
||||
<translation>Count pages from</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="384" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="386" />
|
||||
<source>Clear double pages</source>
|
||||
<translation>Clear double pages</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="447" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="449" />
|
||||
<source>END</source>
|
||||
<translation>END</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="501" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="503" />
|
||||
<source>Untitled</source>
|
||||
<translation>Untitled</translation>
|
||||
</message>
|
||||
@@ -2957,45 +2968,45 @@
|
||||
<context>
|
||||
<name>GuiProjectDetailsMain</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="168" />
|
||||
<source>Working Title: {0}</source>
|
||||
<translation>Working Title: {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="177" />
|
||||
<source>By {0}</source>
|
||||
<translation>By {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="187" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="185" />
|
||||
<source>Words</source>
|
||||
<translation>Words</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="190" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="188" />
|
||||
<source>Chapters</source>
|
||||
<translation>Chapters</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="193" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="191" />
|
||||
<source>Scenes</source>
|
||||
<translation>Scenes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="196" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="194" />
|
||||
<source>Revisions</source>
|
||||
<translation>Revisions</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="199" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="197" />
|
||||
<source>Editing Time</source>
|
||||
<translation>Editing Time</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="219" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="217" />
|
||||
<source>Path</source>
|
||||
<translation>Path</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="253" />
|
||||
<source>Project: {0}</source>
|
||||
<translation>Project: {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="254" />
|
||||
<source>By {0}</source>
|
||||
<translation>By {0}</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GuiProjectEditMain</name>
|
||||
|
||||
+87
-76
@@ -4,72 +4,72 @@
|
||||
<context>
|
||||
<name>Common</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="333" />
|
||||
<location filename="../novelwriter/common.py" line="306" />
|
||||
<source>in the future</source>
|
||||
<translation>en el futuro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="337" />
|
||||
<location filename="../novelwriter/common.py" line="310" />
|
||||
<source>just now</source>
|
||||
<translation>ahora mismo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="341" />
|
||||
<location filename="../novelwriter/common.py" line="314" />
|
||||
<source>a minute ago</source>
|
||||
<translation>hace un minuto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="345" />
|
||||
<location filename="../novelwriter/common.py" line="318" />
|
||||
<source>{0} minutes ago</source>
|
||||
<translation>hace {0} minutos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="349" />
|
||||
<location filename="../novelwriter/common.py" line="322" />
|
||||
<source>an hour ago</source>
|
||||
<translation>hace una hora</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="353" />
|
||||
<location filename="../novelwriter/common.py" line="326" />
|
||||
<source>{0} hours ago</source>
|
||||
<translation>hace {0} horas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="357" />
|
||||
<location filename="../novelwriter/common.py" line="330" />
|
||||
<source>a day ago</source>
|
||||
<translation>hace un día</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="361" />
|
||||
<location filename="../novelwriter/common.py" line="334" />
|
||||
<source>{0} days ago</source>
|
||||
<translation>hace {0} días</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="365" />
|
||||
<location filename="../novelwriter/common.py" line="338" />
|
||||
<source>a week ago</source>
|
||||
<translation>hace una semana</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="369" />
|
||||
<location filename="../novelwriter/common.py" line="342" />
|
||||
<source>{0} weeks ago</source>
|
||||
<translation>hace {0} semanas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="373" />
|
||||
<location filename="../novelwriter/common.py" line="346" />
|
||||
<source>a month ago</source>
|
||||
<translation>hace un mes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="377" />
|
||||
<location filename="../novelwriter/common.py" line="350" />
|
||||
<source>{0} months ago</source>
|
||||
<translation>hace {0} meses</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="381" />
|
||||
<location filename="../novelwriter/common.py" line="354" />
|
||||
<source>a year ago</source>
|
||||
<translation>hace un año</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="385" />
|
||||
<location filename="../novelwriter/common.py" line="358" />
|
||||
<source>{0} years ago</source>
|
||||
<translation>hace {0} años</translation>
|
||||
</message>
|
||||
@@ -757,32 +757,32 @@
|
||||
<context>
|
||||
<name>GuiDocEditFooter</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2924" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2931" />
|
||||
<source>Status</source>
|
||||
<translation>Estado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3073" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3080" />
|
||||
<source>Line: {0} ({1})</source>
|
||||
<translation>Línea: {0} ({1})</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3102" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3109" />
|
||||
<source>Words: {0} ({1})</source>
|
||||
<translation>Palabras: {0} ({1})</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3107" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3114" />
|
||||
<source>Document size is {0} bytes</source>
|
||||
<translation>El tamaño del documento es de {0} bytes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3119" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3126" />
|
||||
<source>Words: {0} selected</source>
|
||||
<translation>Palabras: {0} seleccionadas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3122" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3129" />
|
||||
<source>Character count: {0}</source>
|
||||
<translation>Total de caracteres: {0}</translation>
|
||||
</message>
|
||||
@@ -790,22 +790,22 @@
|
||||
<context>
|
||||
<name>GuiDocEditHeader</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2694" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2701" />
|
||||
<source>Edit document label</source>
|
||||
<translation>Editar el rótulo del documento</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2703" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2710" />
|
||||
<source>Search document</source>
|
||||
<translation>Buscar en el documento</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2712" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2719" />
|
||||
<source>Toggle Focus Mode</source>
|
||||
<translation>Alternar el Modo Enfocado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2721" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2728" />
|
||||
<source>Close the document</source>
|
||||
<translation>Cerrar el documento</translation>
|
||||
</message>
|
||||
@@ -813,58 +813,58 @@
|
||||
<context>
|
||||
<name>GuiDocEditSearch</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2287" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2274" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2294" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2281" />
|
||||
<source>Search</source>
|
||||
<translation>Buscar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2279" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2286" />
|
||||
<source>Replace</source>
|
||||
<translation>Reemplazar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2295" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2302" />
|
||||
<source>Case Sensitive</source>
|
||||
<translation>Sensibilidad a Mayúsculas y Minúsculas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2301" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2308" />
|
||||
<source>Whole Words Only</source>
|
||||
<translation>Sólo Palabras Enteras</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2307" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2314" />
|
||||
<source>RegEx Mode</source>
|
||||
<translation>Modo ExReg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2313" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2320" />
|
||||
<source>Loop Search</source>
|
||||
<translation>Reiniciar la Búsqueda</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2319" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2326" />
|
||||
<source>Search Next File</source>
|
||||
<translation>Buscar en el Siguiente Archivo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2327" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2334" />
|
||||
<source>Preserve Case</source>
|
||||
<translation>Conservar Mayúsculas y Minúsculas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2335" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2342" />
|
||||
<source>Close Search</source>
|
||||
<translation>Cerrar la Búsqueda</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2351" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2358" />
|
||||
<source>Find in current document</source>
|
||||
<translation>Buscar en el documento actual</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2356" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2363" />
|
||||
<source>Find and replace in current document</source>
|
||||
<translation>Buscar y reemplazar en el documento actual</translation>
|
||||
</message>
|
||||
@@ -2050,55 +2050,66 @@
|
||||
<context>
|
||||
<name>GuiNovelToolBar</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="207" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="216" />
|
||||
<source>Outline of {0}</source>
|
||||
<translation>Estructura de {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="215" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="224" />
|
||||
<source>Novel Root</source>
|
||||
<translation>Raíz de la Novela</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="221" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="230" />
|
||||
<source>Refresh</source>
|
||||
<translation>Actualizar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="228" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="237" />
|
||||
<source>Last Column</source>
|
||||
<translation>Última Columna</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="231" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="240" />
|
||||
<source>Hidden</source>
|
||||
<translation>Ocultar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="232" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="241" />
|
||||
<source>Point of View Character</source>
|
||||
<translation>Personaje Vehículo del Punto de Vista</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="233" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="242" />
|
||||
<source>Focus Character</source>
|
||||
<translation>Personaje bajo Enfoque</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="234" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="243" />
|
||||
<source>Novel Plot</source>
|
||||
<translation>Argumento de la Novela</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="237" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="361" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="246" />
|
||||
<source>Column Size</source>
|
||||
<translation>Tamaño de Columna</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="250" />
|
||||
<source>More Options</source>
|
||||
<translation>Más Opciones</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="361" />
|
||||
<source>Maximum column size in %</source>
|
||||
<translation>Tamaño de columna máximo en %</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GuiNovelTree</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="778" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="815" />
|
||||
<source>No meta data</source>
|
||||
<translation>Sin metadatos</translation>
|
||||
</message>
|
||||
@@ -2884,72 +2895,72 @@
|
||||
<context>
|
||||
<name>GuiProjectDetailsContents</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="295" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="297" />
|
||||
<source>Table of Contents</source>
|
||||
<translation>Tabla de Contenido</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="314" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="316" />
|
||||
<source>Title</source>
|
||||
<translation>Título</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="315" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="317" />
|
||||
<source>Words</source>
|
||||
<translation>Palabras</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="316" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="318" />
|
||||
<source>Pages</source>
|
||||
<translation>Páginas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="317" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="319" />
|
||||
<source>Page</source>
|
||||
<translation>Página</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="318" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="320" />
|
||||
<source>Progress</source>
|
||||
<translation>Progreso</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="353" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="355" />
|
||||
<source>Typical word count for a 5 by 8 inch book page with 11 pt font is 350.</source>
|
||||
<translation>El total de palabras característico para una página de libro de 12cm por 20cm con una fuente a 11pt es de 350.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="356" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="358" />
|
||||
<source>Start counting page numbers from this page.</source>
|
||||
<translation>Comenzar a contar los números de página a partir de esta página.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="359" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="361" />
|
||||
<source>Assume a new chapter or partition always start on an odd numbered page.</source>
|
||||
<translation>Dar por sentado que un capítulo o partición nueva siempre comenzará en una página impar.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="362" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="364" />
|
||||
<source>Words per page</source>
|
||||
<translation>Palabras por página</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="373" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="375" />
|
||||
<source>Count pages from</source>
|
||||
<translation>Contar páginas desde</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="384" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="386" />
|
||||
<source>Clear double pages</source>
|
||||
<translation>Eliminar páginas dobles</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="447" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="449" />
|
||||
<source>END</source>
|
||||
<translation>FIN</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="501" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="503" />
|
||||
<source>Untitled</source>
|
||||
<translation>Sin Título</translation>
|
||||
</message>
|
||||
@@ -2957,45 +2968,45 @@
|
||||
<context>
|
||||
<name>GuiProjectDetailsMain</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="168" />
|
||||
<source>Working Title: {0}</source>
|
||||
<translation>Título Provisional: {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="177" />
|
||||
<source>By {0}</source>
|
||||
<translation>Por {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="187" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="185" />
|
||||
<source>Words</source>
|
||||
<translation>Palabras</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="190" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="188" />
|
||||
<source>Chapters</source>
|
||||
<translation>Capítulos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="193" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="191" />
|
||||
<source>Scenes</source>
|
||||
<translation>Escenas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="196" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="194" />
|
||||
<source>Revisions</source>
|
||||
<translation>Revisiones</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="199" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="197" />
|
||||
<source>Editing Time</source>
|
||||
<translation>Tiempo de Edición</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="219" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="217" />
|
||||
<source>Path</source>
|
||||
<translation>Ruta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="253" />
|
||||
<source>Project: {0}</source>
|
||||
<translation>Proyecto: {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="254" />
|
||||
<source>By {0}</source>
|
||||
<translation>Por {0}</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GuiProjectEditMain</name>
|
||||
|
||||
+45
-45
@@ -4,72 +4,72 @@
|
||||
<context>
|
||||
<name>Common</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="333" />
|
||||
<location filename="../novelwriter/common.py" line="306" />
|
||||
<source>in the future</source>
|
||||
<translation>dans le futur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="337" />
|
||||
<location filename="../novelwriter/common.py" line="310" />
|
||||
<source>just now</source>
|
||||
<translation>maintenant</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="341" />
|
||||
<location filename="../novelwriter/common.py" line="314" />
|
||||
<source>a minute ago</source>
|
||||
<translation>il y a une minute</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="345" />
|
||||
<location filename="../novelwriter/common.py" line="318" />
|
||||
<source>{0} minutes ago</source>
|
||||
<translation>il y a {0} minutes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="349" />
|
||||
<location filename="../novelwriter/common.py" line="322" />
|
||||
<source>an hour ago</source>
|
||||
<translation>il y a une heure</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="353" />
|
||||
<location filename="../novelwriter/common.py" line="326" />
|
||||
<source>{0} hours ago</source>
|
||||
<translation>il y a {0} heures</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="357" />
|
||||
<location filename="../novelwriter/common.py" line="330" />
|
||||
<source>a day ago</source>
|
||||
<translation>hier</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="361" />
|
||||
<location filename="../novelwriter/common.py" line="334" />
|
||||
<source>{0} days ago</source>
|
||||
<translation>il y a {0} jours</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="365" />
|
||||
<location filename="../novelwriter/common.py" line="338" />
|
||||
<source>a week ago</source>
|
||||
<translation>il y a une semaine</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="369" />
|
||||
<location filename="../novelwriter/common.py" line="342" />
|
||||
<source>{0} weeks ago</source>
|
||||
<translation>il y a {0} semaines</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="373" />
|
||||
<location filename="../novelwriter/common.py" line="346" />
|
||||
<source>a month ago</source>
|
||||
<translation>il y a un mois</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="377" />
|
||||
<location filename="../novelwriter/common.py" line="350" />
|
||||
<source>{0} months ago</source>
|
||||
<translation>il y a {0} mois</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="381" />
|
||||
<location filename="../novelwriter/common.py" line="354" />
|
||||
<source>a year ago</source>
|
||||
<translation>il y a un an</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="385" />
|
||||
<location filename="../novelwriter/common.py" line="358" />
|
||||
<source>{0} years ago</source>
|
||||
<translation>il y a {0} ans</translation>
|
||||
</message>
|
||||
@@ -2884,72 +2884,72 @@
|
||||
<context>
|
||||
<name>GuiProjectDetailsContents</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="295" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="297" />
|
||||
<source>Table of Contents</source>
|
||||
<translation>Table des matières</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="314" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="316" />
|
||||
<source>Title</source>
|
||||
<translation>Titre</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="315" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="317" />
|
||||
<source>Words</source>
|
||||
<translation>Mots</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="316" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="318" />
|
||||
<source>Pages</source>
|
||||
<translation>Pages</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="317" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="319" />
|
||||
<source>Page</source>
|
||||
<translation>Page</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="318" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="320" />
|
||||
<source>Progress</source>
|
||||
<translation>Progression</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="353" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="355" />
|
||||
<source>Typical word count for a 5 by 8 inch book page with 11 pt font is 350.</source>
|
||||
<translation>Le nombre de mots moyen pour une page de livre de format 13 X 20 cm avec une police en taille 11pt est de 350.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="356" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="358" />
|
||||
<source>Start counting page numbers from this page.</source>
|
||||
<translation>Commencer à compter les pages depuis cette page.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="359" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="361" />
|
||||
<source>Assume a new chapter or partition always start on an odd numbered page.</source>
|
||||
<translation>On suppose qu'un nouveau chapitre ou une nouvelle partie débute sur une page de droite, numérotée impaire.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="362" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="364" />
|
||||
<source>Words per page</source>
|
||||
<translation>Mots par page</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="373" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="375" />
|
||||
<source>Count pages from</source>
|
||||
<translation>Compter les pages depuis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="384" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="386" />
|
||||
<source>Clear double pages</source>
|
||||
<translation>Ignorer les doubles pages</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="447" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="449" />
|
||||
<source>END</source>
|
||||
<translation>FIN</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="501" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="503" />
|
||||
<source>Untitled</source>
|
||||
<translation>Sans titre</translation>
|
||||
</message>
|
||||
@@ -2957,45 +2957,45 @@
|
||||
<context>
|
||||
<name>GuiProjectDetailsMain</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="168" />
|
||||
<source>Working Title: {0}</source>
|
||||
<translation>Titre de travail : {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="177" />
|
||||
<source>By {0}</source>
|
||||
<translation>Par {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="187" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="185" />
|
||||
<source>Words</source>
|
||||
<translation>Mots</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="190" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="188" />
|
||||
<source>Chapters</source>
|
||||
<translation>Chapitres</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="193" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="191" />
|
||||
<source>Scenes</source>
|
||||
<translation>Scènes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="196" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="194" />
|
||||
<source>Revisions</source>
|
||||
<translation>Révisions</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="199" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="197" />
|
||||
<source>Editing Time</source>
|
||||
<translation>Durée d'édition</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="219" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="217" />
|
||||
<source>Path</source>
|
||||
<translation>Chemin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="253" />
|
||||
<source>Project: {0}</source>
|
||||
<translation>Projet : {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="254" />
|
||||
<source>By {0}</source>
|
||||
<translation>Par {0}</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GuiProjectEditMain</name>
|
||||
@@ -3782,7 +3782,7 @@
|
||||
<message>
|
||||
<location filename="../novelwriter/core/project.py" line="254" />
|
||||
<source>Could not open project with path: {0}</source>
|
||||
<translation type="unfinished" />
|
||||
<translation>N'a pas pu ouvrir le projet avec le chemin : {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/core/project.py" line="291" />
|
||||
|
||||
+4480
File diff suppressed because it is too large
Load Diff
+87
-76
@@ -4,72 +4,72 @@
|
||||
<context>
|
||||
<name>Common</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="333" />
|
||||
<location filename="../novelwriter/common.py" line="306" />
|
||||
<source>in the future</source>
|
||||
<translation>i fremtiden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="337" />
|
||||
<location filename="../novelwriter/common.py" line="310" />
|
||||
<source>just now</source>
|
||||
<translation>nå nettopp</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="341" />
|
||||
<location filename="../novelwriter/common.py" line="314" />
|
||||
<source>a minute ago</source>
|
||||
<translation>for et minutt siden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="345" />
|
||||
<location filename="../novelwriter/common.py" line="318" />
|
||||
<source>{0} minutes ago</source>
|
||||
<translation>for {0} minutter siden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="349" />
|
||||
<location filename="../novelwriter/common.py" line="322" />
|
||||
<source>an hour ago</source>
|
||||
<translation>for en time siden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="353" />
|
||||
<location filename="../novelwriter/common.py" line="326" />
|
||||
<source>{0} hours ago</source>
|
||||
<translation>for {0} timer siden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="357" />
|
||||
<location filename="../novelwriter/common.py" line="330" />
|
||||
<source>a day ago</source>
|
||||
<translation>for en dag siden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="361" />
|
||||
<location filename="../novelwriter/common.py" line="334" />
|
||||
<source>{0} days ago</source>
|
||||
<translation>for {0} dager siden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="365" />
|
||||
<location filename="../novelwriter/common.py" line="338" />
|
||||
<source>a week ago</source>
|
||||
<translation>for en uke siden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="369" />
|
||||
<location filename="../novelwriter/common.py" line="342" />
|
||||
<source>{0} weeks ago</source>
|
||||
<translation>for {0} uker siden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="373" />
|
||||
<location filename="../novelwriter/common.py" line="346" />
|
||||
<source>a month ago</source>
|
||||
<translation>for en måned siden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="377" />
|
||||
<location filename="../novelwriter/common.py" line="350" />
|
||||
<source>{0} months ago</source>
|
||||
<translation>for {0} måneder siden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="381" />
|
||||
<location filename="../novelwriter/common.py" line="354" />
|
||||
<source>a year ago</source>
|
||||
<translation>for et år siden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="385" />
|
||||
<location filename="../novelwriter/common.py" line="358" />
|
||||
<source>{0} years ago</source>
|
||||
<translation>for {0} år siden</translation>
|
||||
</message>
|
||||
@@ -757,32 +757,32 @@
|
||||
<context>
|
||||
<name>GuiDocEditFooter</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2924" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2931" />
|
||||
<source>Status</source>
|
||||
<translation>Status</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3073" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3080" />
|
||||
<source>Line: {0} ({1})</source>
|
||||
<translation>Linje: {0} ({1})</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3102" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3109" />
|
||||
<source>Words: {0} ({1})</source>
|
||||
<translation>Ord: {0} ({1})</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3107" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3114" />
|
||||
<source>Document size is {0} bytes</source>
|
||||
<translation>Dokumentet er {0} byte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3119" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3126" />
|
||||
<source>Words: {0} selected</source>
|
||||
<translation>Ord: {0} valgt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3122" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3129" />
|
||||
<source>Character count: {0}</source>
|
||||
<translation>Antall tegn: {0}</translation>
|
||||
</message>
|
||||
@@ -790,22 +790,22 @@
|
||||
<context>
|
||||
<name>GuiDocEditHeader</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2694" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2701" />
|
||||
<source>Edit document label</source>
|
||||
<translation>Endre dokumentnavn</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2703" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2710" />
|
||||
<source>Search document</source>
|
||||
<translation>Søk i dokumentet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2712" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2719" />
|
||||
<source>Toggle Focus Mode</source>
|
||||
<translation>Slå av/på "Fokus-modus"</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2721" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2728" />
|
||||
<source>Close the document</source>
|
||||
<translation>Lukk dokumentet</translation>
|
||||
</message>
|
||||
@@ -813,58 +813,58 @@
|
||||
<context>
|
||||
<name>GuiDocEditSearch</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2287" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2274" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2294" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2281" />
|
||||
<source>Search</source>
|
||||
<translation>Søk</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2279" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2286" />
|
||||
<source>Replace</source>
|
||||
<translation>Erstatt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2295" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2302" />
|
||||
<source>Case Sensitive</source>
|
||||
<translation>Skill store/små bokstaver</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2301" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2308" />
|
||||
<source>Whole Words Only</source>
|
||||
<translation>Kun hele ord</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2307" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2314" />
|
||||
<source>RegEx Mode</source>
|
||||
<translation>RegEx-modus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2313" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2320" />
|
||||
<source>Loop Search</source>
|
||||
<translation>Søk rundt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2319" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2326" />
|
||||
<source>Search Next File</source>
|
||||
<translation>Søk i neste file</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2327" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2334" />
|
||||
<source>Preserve Case</source>
|
||||
<translation>Behold store/små bokstaver</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2335" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2342" />
|
||||
<source>Close Search</source>
|
||||
<translation>Lukk søk</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2351" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2358" />
|
||||
<source>Find in current document</source>
|
||||
<translation>Søk i det åpne dokumentet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2356" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2363" />
|
||||
<source>Find and replace in current document</source>
|
||||
<translation>Søk og erstatt i det åpne dokumentet</translation>
|
||||
</message>
|
||||
@@ -2050,55 +2050,66 @@
|
||||
<context>
|
||||
<name>GuiNovelToolBar</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="207" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="216" />
|
||||
<source>Outline of {0}</source>
|
||||
<translation>Innhold i {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="215" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="224" />
|
||||
<source>Novel Root</source>
|
||||
<translation>Roman-mappe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="221" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="230" />
|
||||
<source>Refresh</source>
|
||||
<translation>Oppdatér</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="228" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="237" />
|
||||
<source>Last Column</source>
|
||||
<translation>Siste kolonne</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="231" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="240" />
|
||||
<source>Hidden</source>
|
||||
<translation>Skjult</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="232" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="241" />
|
||||
<source>Point of View Character</source>
|
||||
<translation>Synsvinkel-karakter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="233" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="242" />
|
||||
<source>Focus Character</source>
|
||||
<translation>Fokus-karakter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="234" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="243" />
|
||||
<source>Novel Plot</source>
|
||||
<translation>Roman-plott</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="237" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="361" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="246" />
|
||||
<source>Column Size</source>
|
||||
<translation>Kolonnebredde</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="250" />
|
||||
<source>More Options</source>
|
||||
<translation>Flere valg</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="361" />
|
||||
<source>Maximum column size in %</source>
|
||||
<translation>Maksimal kolonnebredde i %</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GuiNovelTree</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="778" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="815" />
|
||||
<source>No meta data</source>
|
||||
<translation>Ingen meta-data</translation>
|
||||
</message>
|
||||
@@ -2884,72 +2895,72 @@
|
||||
<context>
|
||||
<name>GuiProjectDetailsContents</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="295" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="297" />
|
||||
<source>Table of Contents</source>
|
||||
<translation>Innholdsfortegnelse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="314" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="316" />
|
||||
<source>Title</source>
|
||||
<translation>Tittel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="315" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="317" />
|
||||
<source>Words</source>
|
||||
<translation>Ord</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="316" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="318" />
|
||||
<source>Pages</source>
|
||||
<translation>Sider</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="317" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="319" />
|
||||
<source>Page</source>
|
||||
<translation>Side</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="318" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="320" />
|
||||
<source>Progress</source>
|
||||
<translation>Fremdrift</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="353" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="355" />
|
||||
<source>Typical word count for a 5 by 8 inch book page with 11 pt font is 350.</source>
|
||||
<translation>Typisk antall ord for en 5 x 8 tommers bokside med 11 pt tekst er 350.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="356" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="358" />
|
||||
<source>Start counting page numbers from this page.</source>
|
||||
<translation>Begynn sidetall fra denne siden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="359" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="361" />
|
||||
<source>Assume a new chapter or partition always start on an odd numbered page.</source>
|
||||
<translation>Beregn at nye kapitler og partisjoner alltid starter på en høyreside.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="362" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="364" />
|
||||
<source>Words per page</source>
|
||||
<translation>Ord per side</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="373" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="375" />
|
||||
<source>Count pages from</source>
|
||||
<translation>Tell sider fra</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="384" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="386" />
|
||||
<source>Clear double pages</source>
|
||||
<translation>Tøm doble sider</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="447" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="449" />
|
||||
<source>END</source>
|
||||
<translation>SLUTT</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="501" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="503" />
|
||||
<source>Untitled</source>
|
||||
<translation>Uten tittel</translation>
|
||||
</message>
|
||||
@@ -2957,45 +2968,45 @@
|
||||
<context>
|
||||
<name>GuiProjectDetailsMain</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="168" />
|
||||
<source>Working Title: {0}</source>
|
||||
<translation>Arbeidstittel: {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="177" />
|
||||
<source>By {0}</source>
|
||||
<translation>Av {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="187" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="185" />
|
||||
<source>Words</source>
|
||||
<translation>Ord</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="190" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="188" />
|
||||
<source>Chapters</source>
|
||||
<translation>Kapitler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="193" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="191" />
|
||||
<source>Scenes</source>
|
||||
<translation>Scener</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="196" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="194" />
|
||||
<source>Revisions</source>
|
||||
<translation>Revisjoner</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="199" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="197" />
|
||||
<source>Editing Time</source>
|
||||
<translation>Redigeringstid</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="219" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="217" />
|
||||
<source>Path</source>
|
||||
<translation>Filbane</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="253" />
|
||||
<source>Project: {0}</source>
|
||||
<translation>Prosjekt: {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="254" />
|
||||
<source>By {0}</source>
|
||||
<translation>Av {0}</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GuiProjectEditMain</name>
|
||||
|
||||
+45
-45
@@ -4,72 +4,72 @@
|
||||
<context>
|
||||
<name>Common</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="333" />
|
||||
<location filename="../novelwriter/common.py" line="306" />
|
||||
<source>in the future</source>
|
||||
<translation>in de toekomst</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="337" />
|
||||
<location filename="../novelwriter/common.py" line="310" />
|
||||
<source>just now</source>
|
||||
<translation>zojuist</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="341" />
|
||||
<location filename="../novelwriter/common.py" line="314" />
|
||||
<source>a minute ago</source>
|
||||
<translation>een minuut geleden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="345" />
|
||||
<location filename="../novelwriter/common.py" line="318" />
|
||||
<source>{0} minutes ago</source>
|
||||
<translation>{0} minuten geleden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="349" />
|
||||
<location filename="../novelwriter/common.py" line="322" />
|
||||
<source>an hour ago</source>
|
||||
<translation>een uur geleden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="353" />
|
||||
<location filename="../novelwriter/common.py" line="326" />
|
||||
<source>{0} hours ago</source>
|
||||
<translation>{0} uur geleden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="357" />
|
||||
<location filename="../novelwriter/common.py" line="330" />
|
||||
<source>a day ago</source>
|
||||
<translation>een dag geleden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="361" />
|
||||
<location filename="../novelwriter/common.py" line="334" />
|
||||
<source>{0} days ago</source>
|
||||
<translation>{0} dagen geleden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="365" />
|
||||
<location filename="../novelwriter/common.py" line="338" />
|
||||
<source>a week ago</source>
|
||||
<translation>een week geleden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="369" />
|
||||
<location filename="../novelwriter/common.py" line="342" />
|
||||
<source>{0} weeks ago</source>
|
||||
<translation>{0} weken geleden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="373" />
|
||||
<location filename="../novelwriter/common.py" line="346" />
|
||||
<source>a month ago</source>
|
||||
<translation>een maand geleden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="377" />
|
||||
<location filename="../novelwriter/common.py" line="350" />
|
||||
<source>{0} months ago</source>
|
||||
<translation>{0} maanden geleden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="381" />
|
||||
<location filename="../novelwriter/common.py" line="354" />
|
||||
<source>a year ago</source>
|
||||
<translation>een jaar geleden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="385" />
|
||||
<location filename="../novelwriter/common.py" line="358" />
|
||||
<source>{0} years ago</source>
|
||||
<translation>{0} jaren geleden</translation>
|
||||
</message>
|
||||
@@ -2884,72 +2884,72 @@
|
||||
<context>
|
||||
<name>GuiProjectDetailsContents</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="295" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="297" />
|
||||
<source>Table of Contents</source>
|
||||
<translation>Inhoudsopgave</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="314" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="316" />
|
||||
<source>Title</source>
|
||||
<translation>Titel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="315" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="317" />
|
||||
<source>Words</source>
|
||||
<translation>Woorden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="316" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="318" />
|
||||
<source>Pages</source>
|
||||
<translation>Pagina's</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="317" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="319" />
|
||||
<source>Page</source>
|
||||
<translation>Pagina</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="318" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="320" />
|
||||
<source>Progress</source>
|
||||
<translation>Voortgang</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="353" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="355" />
|
||||
<source>Typical word count for a 5 by 8 inch book page with 11 pt font is 350.</source>
|
||||
<translation>Typische woord telling voor een 5 bij 8 inch boek pagina met 11 pt lettertype is 350.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="356" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="358" />
|
||||
<source>Start counting page numbers from this page.</source>
|
||||
<translation>Begin met het tellen van paginanummers vanaf deze pagina.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="359" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="361" />
|
||||
<source>Assume a new chapter or partition always start on an odd numbered page.</source>
|
||||
<translation>Neem aan dat een nieuw hoofdstuk of partitie altijd op een oneven genummerde pagina begint.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="362" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="364" />
|
||||
<source>Words per page</source>
|
||||
<translation>Woorden per pagina</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="373" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="375" />
|
||||
<source>Count pages from</source>
|
||||
<translation>Pagina's tellen vanaf</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="384" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="386" />
|
||||
<source>Clear double pages</source>
|
||||
<translation>Dubbele pagina's wissen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="447" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="449" />
|
||||
<source>END</source>
|
||||
<translation>EINDE</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="501" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="503" />
|
||||
<source>Untitled</source>
|
||||
<translation>Naamloos</translation>
|
||||
</message>
|
||||
@@ -2957,45 +2957,45 @@
|
||||
<context>
|
||||
<name>GuiProjectDetailsMain</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="168" />
|
||||
<source>Working Title: {0}</source>
|
||||
<translation>Werktitel: {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="177" />
|
||||
<source>By {0}</source>
|
||||
<translation>Door {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="187" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="185" />
|
||||
<source>Words</source>
|
||||
<translation>Woorden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="190" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="188" />
|
||||
<source>Chapters</source>
|
||||
<translation>Hoofdstukken</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="193" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="191" />
|
||||
<source>Scenes</source>
|
||||
<translation>Scènes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="196" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="194" />
|
||||
<source>Revisions</source>
|
||||
<translation>Revisies</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="199" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="197" />
|
||||
<source>Editing Time</source>
|
||||
<translation>Bewerk tijd</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="219" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="217" />
|
||||
<source>Path</source>
|
||||
<translation>Pad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="253" />
|
||||
<source>Project: {0}</source>
|
||||
<translation>Project: {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="254" />
|
||||
<source>By {0}</source>
|
||||
<translation>Door {0}</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GuiProjectEditMain</name>
|
||||
@@ -3782,7 +3782,7 @@
|
||||
<message>
|
||||
<location filename="../novelwriter/core/project.py" line="254" />
|
||||
<source>Could not open project with path: {0}</source>
|
||||
<translation type="unfinished" />
|
||||
<translation>Kon project niet openen met pad: {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/core/project.py" line="291" />
|
||||
|
||||
+88
-77
@@ -4,72 +4,72 @@
|
||||
<context>
|
||||
<name>Common</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="333" />
|
||||
<location filename="../novelwriter/common.py" line="306" />
|
||||
<source>in the future</source>
|
||||
<translation>no futuro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="337" />
|
||||
<location filename="../novelwriter/common.py" line="310" />
|
||||
<source>just now</source>
|
||||
<translation>agora</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="341" />
|
||||
<location filename="../novelwriter/common.py" line="314" />
|
||||
<source>a minute ago</source>
|
||||
<translation>um minuto atrás</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="345" />
|
||||
<location filename="../novelwriter/common.py" line="318" />
|
||||
<source>{0} minutes ago</source>
|
||||
<translation>{0} minutos atrás</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="349" />
|
||||
<location filename="../novelwriter/common.py" line="322" />
|
||||
<source>an hour ago</source>
|
||||
<translation>uma hora atrás</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="353" />
|
||||
<location filename="../novelwriter/common.py" line="326" />
|
||||
<source>{0} hours ago</source>
|
||||
<translation>{0} horas atrás</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="357" />
|
||||
<location filename="../novelwriter/common.py" line="330" />
|
||||
<source>a day ago</source>
|
||||
<translation>um dia atrás</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="361" />
|
||||
<location filename="../novelwriter/common.py" line="334" />
|
||||
<source>{0} days ago</source>
|
||||
<translation>{0} dias atrás</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="365" />
|
||||
<location filename="../novelwriter/common.py" line="338" />
|
||||
<source>a week ago</source>
|
||||
<translation>uma semana atrás</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="369" />
|
||||
<location filename="../novelwriter/common.py" line="342" />
|
||||
<source>{0} weeks ago</source>
|
||||
<translation>{0} semanas atrás</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="373" />
|
||||
<location filename="../novelwriter/common.py" line="346" />
|
||||
<source>a month ago</source>
|
||||
<translation>um mês atrás</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="377" />
|
||||
<location filename="../novelwriter/common.py" line="350" />
|
||||
<source>{0} months ago</source>
|
||||
<translation>{0} meses atrás</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="381" />
|
||||
<location filename="../novelwriter/common.py" line="354" />
|
||||
<source>a year ago</source>
|
||||
<translation>um ano atrás</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/common.py" line="385" />
|
||||
<location filename="../novelwriter/common.py" line="358" />
|
||||
<source>{0} years ago</source>
|
||||
<translation>{0} anos atrás</translation>
|
||||
</message>
|
||||
@@ -757,32 +757,32 @@
|
||||
<context>
|
||||
<name>GuiDocEditFooter</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2924" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2931" />
|
||||
<source>Status</source>
|
||||
<translation>Estado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3073" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3080" />
|
||||
<source>Line: {0} ({1})</source>
|
||||
<translation>Linha: {0} ({1})</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3102" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3109" />
|
||||
<source>Words: {0} ({1})</source>
|
||||
<translation>Palavras: {0} ({1})</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3107" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3114" />
|
||||
<source>Document size is {0} bytes</source>
|
||||
<translation>O tamanho do documento é {0} bytes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3119" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3126" />
|
||||
<source>Words: {0} selected</source>
|
||||
<translation>Palavras: {0} selecionadas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3122" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="3129" />
|
||||
<source>Character count: {0}</source>
|
||||
<translation>Contagem de carecteres: {0}</translation>
|
||||
</message>
|
||||
@@ -790,22 +790,22 @@
|
||||
<context>
|
||||
<name>GuiDocEditHeader</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2694" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2701" />
|
||||
<source>Edit document label</source>
|
||||
<translation>Editar etiqueta do documento</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2703" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2710" />
|
||||
<source>Search document</source>
|
||||
<translation>Procurar no documento</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2712" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2719" />
|
||||
<source>Toggle Focus Mode</source>
|
||||
<translation>Alternar o "Modo Foco"</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2721" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2728" />
|
||||
<source>Close the document</source>
|
||||
<translation>Fechar o documento</translation>
|
||||
</message>
|
||||
@@ -813,58 +813,58 @@
|
||||
<context>
|
||||
<name>GuiDocEditSearch</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2287" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2274" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2294" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2281" />
|
||||
<source>Search</source>
|
||||
<translation>Pesquisa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2279" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2286" />
|
||||
<source>Replace</source>
|
||||
<translation>Substituir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2295" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2302" />
|
||||
<source>Case Sensitive</source>
|
||||
<translation>Diferenciar Maiúsculas e Minúsculas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2301" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2308" />
|
||||
<source>Whole Words Only</source>
|
||||
<translation>Apenas Palavras Inteiras</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2307" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2314" />
|
||||
<source>RegEx Mode</source>
|
||||
<translation>Expressão Regular</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2313" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2320" />
|
||||
<source>Loop Search</source>
|
||||
<translation>Pesquisa do Início</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2319" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2326" />
|
||||
<source>Search Next File</source>
|
||||
<translation>Busca no Próximo Arquivo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2327" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2334" />
|
||||
<source>Preserve Case</source>
|
||||
<translation>Preserva Maiúsculas e Minúsculas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2335" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2342" />
|
||||
<source>Close Search</source>
|
||||
<translation>Fechar a Busca</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2351" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2358" />
|
||||
<source>Find in current document</source>
|
||||
<translation>Encontrar no documento atual</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2356" />
|
||||
<location filename="../novelwriter/gui/doceditor.py" line="2363" />
|
||||
<source>Find and replace in current document</source>
|
||||
<translation>Encontrar e substituir no documento atual</translation>
|
||||
</message>
|
||||
@@ -2050,55 +2050,66 @@
|
||||
<context>
|
||||
<name>GuiNovelToolBar</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="207" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="216" />
|
||||
<source>Outline of {0}</source>
|
||||
<translation>Esboço de {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="215" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="224" />
|
||||
<source>Novel Root</source>
|
||||
<translation>Raiz do Livro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="221" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="230" />
|
||||
<source>Refresh</source>
|
||||
<translation>Atualizar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="228" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="237" />
|
||||
<source>Last Column</source>
|
||||
<translation>Última Coluna</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="231" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="240" />
|
||||
<source>Hidden</source>
|
||||
<translation>Oculto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="232" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="241" />
|
||||
<source>Point of View Character</source>
|
||||
<translation>Ponto de Vista do Personagem</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="233" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="242" />
|
||||
<source>Focus Character</source>
|
||||
<translation>Personagem em Foco</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="234" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="243" />
|
||||
<source>Novel Plot</source>
|
||||
<translation>Enredo do Livro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="237" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="361" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="246" />
|
||||
<source>Column Size</source>
|
||||
<translation>Tamanho da Coluna</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="250" />
|
||||
<source>More Options</source>
|
||||
<translation>Mais Opções</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="361" />
|
||||
<source>Maximum column size in %</source>
|
||||
<translation>Tamanho máximo da coluna em %</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GuiNovelTree</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="778" />
|
||||
<location filename="../novelwriter/gui/noveltree.py" line="815" />
|
||||
<source>No meta data</source>
|
||||
<translation>Sem metadados</translation>
|
||||
</message>
|
||||
@@ -2884,72 +2895,72 @@
|
||||
<context>
|
||||
<name>GuiProjectDetailsContents</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="295" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="297" />
|
||||
<source>Table of Contents</source>
|
||||
<translation>Sumário</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="314" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="316" />
|
||||
<source>Title</source>
|
||||
<translation>Título</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="315" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="317" />
|
||||
<source>Words</source>
|
||||
<translation>Palavras</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="316" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="318" />
|
||||
<source>Pages</source>
|
||||
<translation>Páginas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="317" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="319" />
|
||||
<source>Page</source>
|
||||
<translation>Página</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="318" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="320" />
|
||||
<source>Progress</source>
|
||||
<translation>Progresso</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="353" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="355" />
|
||||
<source>Typical word count for a 5 by 8 inch book page with 11 pt font is 350.</source>
|
||||
<translation>Contagem de palavras típica para uma página de livro de 5 por 8 polegadas com a fonte de 11 pt é 350.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="356" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="358" />
|
||||
<source>Start counting page numbers from this page.</source>
|
||||
<translation>Inicia a contagem de numero de páginas à partir dessa página.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="359" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="361" />
|
||||
<source>Assume a new chapter or partition always start on an odd numbered page.</source>
|
||||
<translation>Assume que um capítulo ou partição sempre começa em uma página com numeração ímpar.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="362" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="364" />
|
||||
<source>Words per page</source>
|
||||
<translation>Palavras por página</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="373" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="375" />
|
||||
<source>Count pages from</source>
|
||||
<translation>Contar páginas à partir da página</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="384" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="386" />
|
||||
<source>Clear double pages</source>
|
||||
<translation>Eliminar páginas duplas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="447" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="449" />
|
||||
<source>END</source>
|
||||
<translation>FIM</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="501" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="503" />
|
||||
<source>Untitled</source>
|
||||
<translation>Sem Título</translation>
|
||||
</message>
|
||||
@@ -2957,45 +2968,45 @@
|
||||
<context>
|
||||
<name>GuiProjectDetailsMain</name>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="168" />
|
||||
<source>Working Title: {0}</source>
|
||||
<translation>Nome do projeto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="177" />
|
||||
<source>By {0}</source>
|
||||
<translation>Por {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="187" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="185" />
|
||||
<source>Words</source>
|
||||
<translation>Palavras</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="190" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="188" />
|
||||
<source>Chapters</source>
|
||||
<translation>Capítulos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="193" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="191" />
|
||||
<source>Scenes</source>
|
||||
<translation>Cenas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="196" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="194" />
|
||||
<source>Revisions</source>
|
||||
<translation>Revisões</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="199" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="197" />
|
||||
<source>Editing Time</source>
|
||||
<translation>Tempo de Edição</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="219" />
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="217" />
|
||||
<source>Path</source>
|
||||
<translation>Caminho</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="253" />
|
||||
<source>Project: {0}</source>
|
||||
<translation>Projeto: {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/dialogs/projdetails.py" line="254" />
|
||||
<source>By {0}</source>
|
||||
<translation>Por {0}</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GuiProjectEditMain</name>
|
||||
@@ -3782,7 +3793,7 @@
|
||||
<message>
|
||||
<location filename="../novelwriter/core/project.py" line="254" />
|
||||
<source>Could not open project with path: {0}</source>
|
||||
<translation type="unfinished" />
|
||||
<translation>Não foi possível abrir o projeto com o caminho: {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../novelwriter/core/project.py" line="291" />
|
||||
|
||||
@@ -59,9 +59,9 @@ __license__ = "GPLv3"
|
||||
__author__ = "Veronica Berglyd Olsen"
|
||||
__maintainer__ = "Veronica Berglyd Olsen"
|
||||
__email__ = "code@vkbo.net"
|
||||
__version__ = "2.0.4"
|
||||
__hexversion__ = "0x020004f0"
|
||||
__date__ = "2023-01-29"
|
||||
__version__ = "2.0.5"
|
||||
__hexversion__ = "0x020005f0"
|
||||
__date__ = "2023-02-12"
|
||||
__status__ = "Stable"
|
||||
__domain__ = "novelwriter.io"
|
||||
__url__ = "https://novelwriter.io"
|
||||
|
||||
@@ -0,0 +1,105 @@
|
||||
{
|
||||
"Synopsis": "Sinossi",
|
||||
"Comment": "Commento",
|
||||
"Notes": "Note",
|
||||
"0": "Zero",
|
||||
"1": "Uno",
|
||||
"2": "Due",
|
||||
"3": "Tre",
|
||||
"4": "Quattro",
|
||||
"5": "Cinque",
|
||||
"6": "Sei",
|
||||
"7": "Sette",
|
||||
"8": "Otto",
|
||||
"9": "Nove",
|
||||
"10": "Dieci",
|
||||
"11": "Undici",
|
||||
"12": "Dodici",
|
||||
"13": "Tredici",
|
||||
"14": "Quattordici",
|
||||
"15": "Quindici",
|
||||
"16": "Sedici",
|
||||
"17": "Diciassette",
|
||||
"18": "Diciotto",
|
||||
"19": "Diciannove",
|
||||
"20": "Venti",
|
||||
"21": "Ventuno",
|
||||
"22": "Ventidue",
|
||||
"23": "Ventitré",
|
||||
"24": "Ventiquattro",
|
||||
"25": "Venticinque",
|
||||
"26": "Ventisei",
|
||||
"27": "Ventisette",
|
||||
"28": "Ventotto",
|
||||
"29": "Ventinove",
|
||||
"30": "Trenta",
|
||||
"31": "Trentuno",
|
||||
"32": "Trentadue",
|
||||
"33": "Trentatré",
|
||||
"34": "Trentaquattro",
|
||||
"35": "Trentacinque",
|
||||
"36": "Trentasei",
|
||||
"37": "Trentasette",
|
||||
"38": "Trentotto",
|
||||
"39": "Trentanove",
|
||||
"40": "Quaranta",
|
||||
"41": "Quarantuno",
|
||||
"42": "Quarantadue",
|
||||
"43": "Quarantatré",
|
||||
"44": "Quarantaquattro",
|
||||
"45": "Quarantacinque",
|
||||
"46": "Quarantasei",
|
||||
"47": "Quarantasette",
|
||||
"48": "Quarantotto",
|
||||
"49": "Quarantanove",
|
||||
"50": "Cinquanta",
|
||||
"51": "Cinquantuno",
|
||||
"52": "Cinquantadue",
|
||||
"53": "Cinquantatré",
|
||||
"54": "Cinquantaquattro",
|
||||
"55": "Cinquantacinque",
|
||||
"56": "Cinquantasei",
|
||||
"57": "Cinquantasette",
|
||||
"58": "Cinquantotto",
|
||||
"59": "Cinquantanove",
|
||||
"60": "Sessanta",
|
||||
"61": "Sessantuno",
|
||||
"62": "Sessantadue",
|
||||
"63": "Sessantatre",
|
||||
"64": "Sessantaquattro",
|
||||
"65": "Sessantacinque",
|
||||
"66": "Sessantasei",
|
||||
"67": "Sessantasette",
|
||||
"68": "Sessantotto",
|
||||
"69": "Sessantanove",
|
||||
"70": "Settanta",
|
||||
"71": "Settantuno",
|
||||
"72": "Settantadue",
|
||||
"73": "Settantatré",
|
||||
"74": "Settantaquattro",
|
||||
"75": "Settantacinque",
|
||||
"76": "Settantasei",
|
||||
"77": "Settantasette",
|
||||
"78": "Settantotto",
|
||||
"79": "Settantanove",
|
||||
"80": "Ottanta",
|
||||
"81": "Ottantuno",
|
||||
"82": "Ottantadue",
|
||||
"83": "Ottantatré",
|
||||
"84": "Ottantaquattro",
|
||||
"85": "Ottantacinque",
|
||||
"86": "Ottantasei",
|
||||
"87": "Ottantasette",
|
||||
"88": "Ottantotto",
|
||||
"89": "Ottantanove",
|
||||
"90": "Novanta",
|
||||
"91": "Novantuno",
|
||||
"92": "Novantadue",
|
||||
"93": "Novantatré",
|
||||
"94": "Novantaquattro",
|
||||
"95": "Novantacinque",
|
||||
"96": "Novantasei",
|
||||
"97": "Novantasette",
|
||||
"98": "Novantotto",
|
||||
"99": "Novantanove"
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
{
|
||||
"Synopsis": "Сводка",
|
||||
"Comment": "Комментарий",
|
||||
"Notes": "Заметки",
|
||||
"0": "Ноль",
|
||||
"1": "Один",
|
||||
"2": "Два",
|
||||
"3": "Три",
|
||||
"4": "Четыре",
|
||||
"5": "Пять",
|
||||
"6": "Шесть",
|
||||
"7": "Семь",
|
||||
"8": "Восемь",
|
||||
"9": "Девять",
|
||||
"10": "Десять",
|
||||
"11": "Одиннадцать",
|
||||
"12": "Двенадцать",
|
||||
"13": "Тринадцать",
|
||||
"14": "Четырнадцать",
|
||||
"15": "Пятнадцать",
|
||||
"16": "Шестнадцать",
|
||||
"17": "Семнадцать",
|
||||
"18": "Восемнадцатая",
|
||||
"19": "Девятнадцать",
|
||||
"20": "Двадцать",
|
||||
"21": "Двадцать один",
|
||||
"22": "Двадцать два",
|
||||
"23": "Двадцать три",
|
||||
"24": "Двадцать четыре",
|
||||
"25": "Двадцать пять",
|
||||
"26": "Двадцать шесть",
|
||||
"27": "Двадцать семь",
|
||||
"28": "Двадцать восемь",
|
||||
"29": "Двадцать девять",
|
||||
"30": "Тридцать",
|
||||
"31": "Тридцать один",
|
||||
"32": "Тридцать два",
|
||||
"33": "Тридцать три",
|
||||
"34": "Тридцать четыре",
|
||||
"35": "Тридцать пятая",
|
||||
"36": "Тридцать пять",
|
||||
"37": "Тридцать семь",
|
||||
"38": "Тридцать восемь",
|
||||
"39": "Тридцать девять",
|
||||
"40": "Сорок",
|
||||
"41": "Сорок один",
|
||||
"42": "Сорок два",
|
||||
"43": "Сорок три",
|
||||
"44": "Сорок четыре",
|
||||
"45": "Сорок пять",
|
||||
"46": "Сорок шесть",
|
||||
"47": "Сорок семь",
|
||||
"48": "Сорок восемь",
|
||||
"49": "Сорок девять",
|
||||
"50": "Пятьдесят",
|
||||
"51": "Пятьдесят один",
|
||||
"52": "Пятьдесят два",
|
||||
"53": "Пятьдесят три",
|
||||
"54": "Пятьдесят четыре",
|
||||
"55": "Пятьдесят пять",
|
||||
"56": "Пятьдесят шесть",
|
||||
"57": "Пятьдесят семь",
|
||||
"58": "Пятьдесят восемь",
|
||||
"59": "Пятьдесят девять",
|
||||
"60": "Шестьдесят",
|
||||
"61": "Шестьдесят один",
|
||||
"62": "Шестьдесят два",
|
||||
"63": "Шестьдесят три",
|
||||
"64": "Шестьдесят четыре",
|
||||
"65": "Шестьдесят пять",
|
||||
"66": "Шестьдесят шесть",
|
||||
"67": "Шестьдесят семь",
|
||||
"68": "Шестьдесят восемь",
|
||||
"69": "Шестьдесят девять",
|
||||
"70": "Семьдесят",
|
||||
"71": "Семьдесят один",
|
||||
"72": "Семьдесят два",
|
||||
"73": "Семьдесят три",
|
||||
"74": "Семьдесят четыре",
|
||||
"75": "Семьдесят пять",
|
||||
"76": "Семьдесят шесть",
|
||||
"77": "Семьдесят семь",
|
||||
"78": "Семьдесят восемь",
|
||||
"79": "Семьдесят девять",
|
||||
"80": "Восемьдесят",
|
||||
"81": "Восемьдесят один",
|
||||
"82": "Восемьдесят два",
|
||||
"83": "Восемьдесят три",
|
||||
"84": "Восемьдесят четыре",
|
||||
"85": "Восемьдесят пять",
|
||||
"86": "Восемьдесят шесть",
|
||||
"87": "Восемьдесят семь",
|
||||
"88": "Восемьдесят восемь",
|
||||
"89": "Восемьдесят девять",
|
||||
"90": "Девяносто",
|
||||
"91": "Девяносто один",
|
||||
"92": "Девяносто два",
|
||||
"93": "Девяносто три",
|
||||
"94": "Девяносто четыре",
|
||||
"95": "Девяносто пять",
|
||||
"96": "Девяносто шесть",
|
||||
"97": "Девяносто семь",
|
||||
"98": "Девяносто восемь",
|
||||
"99": "Девяносто девять"
|
||||
}
|
||||
@@ -25,6 +25,7 @@ translators for the languages currently available:</p>
|
||||
<b>Dutch:</b> Martijn van der Kleijn (<a href="https://github.com/mvdkleijn">@mvdkleijn</a>)<br>
|
||||
<b>French:</b> Jan Lüdke (<a href="https://github.com/jyhelle">@jyhelle</a>)<br>
|
||||
<b>German:</b> Myian (<a href="https://github.com/heymyian">@heymyian</a>)<br>
|
||||
<b>Italian:</b> Riccardo Mangili<br>
|
||||
<b>Latin American Spanish:</b> Tommy Marplatt (<a href="https://github.com/tmarplatt">@tmarplatt</a>)<br>
|
||||
<b>Norwegian:</b> Veronica Berglyd Olsen (<a href="https://github.com/vkbo">@vkbo</a>)<br>
|
||||
<b>Portuguese:</b> Bruno Meneguello (<a href="https://github.com/bkmeneguello">@bkmeneguello</a>)<br>
|
||||
|
||||
@@ -70,7 +70,7 @@ document icons. They are technically no longer tree views, but rather a Table of
|
||||
specific novel root folder. If you have multiple novel root folders, you can select which one to
|
||||
view.</p>
|
||||
<p>In the Novel Tree View, you now also have the option to hide or show a third column of data.
|
||||
Currently, you can chose between "Point of View Character", "Focus Character" and "Novel Plot". If
|
||||
Currently, you can choose between "Point of View Character", "Focus Character" and "Novel Plot". If
|
||||
you referenced more than one in the document, the column will only show the first entry, so make
|
||||
sure the most important one is listed first in your document if you use this feature. An arrow icon
|
||||
is also visible at the end of each row in the tree, and if you click on it, a tool tip should pop
|
||||
@@ -114,5 +114,17 @@ dialog box, replacing the Credits section on the main About tab.</p>
|
||||
<p>This is a patch release that fixes a bug where novelWriter would crash if PyQt5 version 5.15.8
|
||||
was installed and imported.</p>
|
||||
|
||||
<h3>Patch 2.0.5 – 12 February 2023</h3>
|
||||
|
||||
<p>This is a patch release that fixes a number of minor bugs and usability issues.</p>
|
||||
<p>The Project Details dialog now properly updates when another project is opened, and the "Total
|
||||
editing time" value has a less ambiguous time format. The editor no longer inserts blank lines if
|
||||
block formats are applied to an empty line. The optional last column in the Novel Tree will now
|
||||
show all items of the selected type, not only the first, and the column size can be adjusted from
|
||||
the same menu where the column content is selected. The Open Document build output has been updated
|
||||
to ODF 1.3 extended format, and passes validation.</p>
|
||||
<p>An Italian translation has been added, and Russian is currently available for project builds. A
|
||||
full translation into Russian is on its way.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -59,7 +59,7 @@ VALID_MAP = {
|
||||
"widthCol3", "widthCol4", "wordsPerPage", "countFrom", "clearDouble",
|
||||
},
|
||||
"GuiWordList": {"winWidth", "winHeight"},
|
||||
"GuiNovelView": {"lastCol"},
|
||||
"GuiNovelView": {"lastCol", "lastColSize"},
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -207,7 +207,7 @@ class NWProjectData:
|
||||
"""Set a new project name.
|
||||
"""
|
||||
if value != self._name:
|
||||
self._name = simplified(str(value))
|
||||
self._name = simplified(str(value or ""))
|
||||
self.theProject.setProjectChanged(True)
|
||||
return
|
||||
|
||||
@@ -215,7 +215,7 @@ class NWProjectData:
|
||||
"""Set a new novel title.
|
||||
"""
|
||||
if value != self._title:
|
||||
self._title = simplified(str(value))
|
||||
self._title = simplified(str(value or ""))
|
||||
self.theProject.setProjectChanged(True)
|
||||
return
|
||||
|
||||
@@ -223,7 +223,7 @@ class NWProjectData:
|
||||
"""Set the author value.
|
||||
"""
|
||||
if value != self._title:
|
||||
self._author = simplified(str(value))
|
||||
self._author = simplified(str(value or ""))
|
||||
self.theProject.setProjectChanged(True)
|
||||
return
|
||||
|
||||
|
||||
@@ -79,8 +79,16 @@ class NWStorage:
|
||||
|
||||
@property
|
||||
def contentPath(self):
|
||||
"""Return the path used for project content. The folder must
|
||||
already exist, otherwise this property is None.
|
||||
"""
|
||||
if self._runtimePath is not None:
|
||||
return self._runtimePath / "content"
|
||||
contentPath = self._runtimePath / "content"
|
||||
if contentPath.is_dir():
|
||||
return contentPath
|
||||
else:
|
||||
logger.error("Path not found: %s", contentPath)
|
||||
return None
|
||||
return None
|
||||
|
||||
##
|
||||
|
||||
@@ -44,12 +44,13 @@ XML_NS = {
|
||||
"text": "urn:oasis:names:tc:opendocument:xmlns:text:1.0",
|
||||
"meta": "urn:oasis:names:tc:opendocument:xmlns:meta:1.0",
|
||||
"fo": "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0",
|
||||
"dc": "http://purl.org/dc/elements/1.1/",
|
||||
}
|
||||
MANI_NS = {
|
||||
"manifest": "urn:oasis:names:tc:opendocument:xmlns:manifest:1.0"
|
||||
}
|
||||
OFFICE_NS = {
|
||||
"office": XML_NS["office"]
|
||||
"office": "urn:oasis:names:tc:opendocument:xmlns:office:1.0",
|
||||
}
|
||||
|
||||
|
||||
@@ -65,7 +66,7 @@ def _mkTag(nsName, tagName, nsMap=XML_NS):
|
||||
|
||||
# Mimetype and Version
|
||||
X_MIME = "application/vnd.oasis.opendocument.text"
|
||||
X_VERS = "1.2"
|
||||
X_VERS = "1.3"
|
||||
|
||||
# Text Formatting Tags
|
||||
TAG_BR = _mkTag("text", "line-break")
|
||||
@@ -261,7 +262,7 @@ class ToOdt(Tokenizer):
|
||||
# ===============
|
||||
|
||||
if self._headerText == "":
|
||||
theTitle = self.theProject.data.title
|
||||
theTitle = self.theProject.data.title or self.theProject.data.name
|
||||
theAuth = self.theProject.data.author
|
||||
self._headerText = f"{theTitle} / {theAuth} /"
|
||||
|
||||
@@ -328,13 +329,37 @@ class ToOdt(Tokenizer):
|
||||
|
||||
self._xText = etree.SubElement(self._xBody, _mkTag("office", "text"))
|
||||
|
||||
# Meta Data
|
||||
timeStamp = datetime.now().isoformat(sep="T", timespec="seconds")
|
||||
|
||||
# Office Meta Data
|
||||
xMeta = etree.SubElement(self._xMeta, _mkTag("meta", "creation-date"))
|
||||
xMeta.text = datetime.now().isoformat(sep="T", timespec="seconds")
|
||||
xMeta.text = timeStamp
|
||||
|
||||
xMeta = etree.SubElement(self._xMeta, _mkTag("meta", "generator"))
|
||||
xMeta.text = f"novelWriter/{novelwriter.__version__}"
|
||||
|
||||
xMeta = etree.SubElement(self._xMeta, _mkTag("meta", "initial-creator"))
|
||||
xMeta.text = self.theProject.data.author
|
||||
|
||||
xMeta = etree.SubElement(self._xMeta, _mkTag("meta", "editing-cycles"))
|
||||
xMeta.text = str(self.theProject.data.saveCount)
|
||||
|
||||
# Format is: PnYnMnDTnHnMnS
|
||||
# https://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#duration
|
||||
eT = self.theProject.data.editTime
|
||||
xMeta = etree.SubElement(self._xMeta, _mkTag("meta", "editing-duration"))
|
||||
xMeta.text = f"P{eT//86400:d}DT{eT%86400//3600:d}H{eT%3600//60:d}M{eT%60:d}S"
|
||||
|
||||
# Dublin Core Meta Data
|
||||
xMeta = etree.SubElement(self._xMeta, _mkTag("dc", "title"))
|
||||
xMeta.text = self.theProject.data.title or self.theProject.data.name
|
||||
|
||||
xMeta = etree.SubElement(self._xMeta, _mkTag("dc", "date"))
|
||||
xMeta.text = timeStamp
|
||||
|
||||
xMeta = etree.SubElement(self._xMeta, _mkTag("dc", "creator"))
|
||||
xMeta.text = self.theProject.data.author
|
||||
|
||||
self._pageStyles()
|
||||
self._defaultStyles()
|
||||
self._useableStyles()
|
||||
@@ -408,7 +433,7 @@ class ToOdt(Tokenizer):
|
||||
|
||||
elif tType == self.T_TITLE:
|
||||
tHead = tText.replace(r"\\", "\n")
|
||||
self._addTextPar("Title", oStyle, tHead, isHead=True)
|
||||
self._addTextPar("Title", oStyle, tHead, isHead=False) # Title must be text:p
|
||||
|
||||
elif tType == self.T_UNNUM:
|
||||
tHead = tText.replace(r"\\", "\n")
|
||||
@@ -503,9 +528,8 @@ class ToOdt(Tokenizer):
|
||||
etree.SubElement(xMani, mFile, attrib={mPath: "styles.xml", mType: "text/xml"})
|
||||
|
||||
oRoot = _mkTag("office", "document-settings", nsMap=OFFICE_NS)
|
||||
oSett = _mkTag("office", "settings", nsMap=OFFICE_NS)
|
||||
xSett = etree.Element(oRoot, nsmap=OFFICE_NS)
|
||||
etree.SubElement(xSett, oSett)
|
||||
oVers = _mkTag("office", "version", nsMap=OFFICE_NS)
|
||||
xSett = etree.Element(oRoot, nsmap=OFFICE_NS, attrib={oVers: X_VERS})
|
||||
|
||||
with ZipFile(savePath, mode="w") as outFile:
|
||||
outFile.writestr("mimetype", X_MIME)
|
||||
|
||||
@@ -34,7 +34,7 @@ from PyQt5.QtWidgets import (
|
||||
QLineEdit, QSpinBox, QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget
|
||||
)
|
||||
|
||||
from novelwriter.common import numberToRoman
|
||||
from novelwriter.common import formatTime, numberToRoman
|
||||
from novelwriter.custom import PagedDialog, QSwitch
|
||||
from novelwriter.constants import nwUnicode
|
||||
from novelwriter.gui.components import NovelSelector
|
||||
@@ -156,7 +156,7 @@ class GuiProjectDetailsMain(QWidget):
|
||||
# Header
|
||||
# ======
|
||||
|
||||
self.bookTitle = QLabel(self.theProject.data.title)
|
||||
self.bookTitle = QLabel("")
|
||||
bookFont = self.bookTitle.font()
|
||||
bookFont.setPointSizeF(2.2*fPt)
|
||||
bookFont.setWeight(QFont.Bold)
|
||||
@@ -164,9 +164,7 @@ class GuiProjectDetailsMain(QWidget):
|
||||
self.bookTitle.setAlignment(Qt.AlignHCenter)
|
||||
self.bookTitle.setWordWrap(True)
|
||||
|
||||
self.projName = QLabel(
|
||||
self.tr("Working Title: {0}").format(self.theProject.data.name)
|
||||
)
|
||||
self.projName = QLabel("")
|
||||
workFont = self.projName.font()
|
||||
workFont.setPointSizeF(0.8*fPt)
|
||||
workFont.setItalic(True)
|
||||
@@ -174,7 +172,7 @@ class GuiProjectDetailsMain(QWidget):
|
||||
self.projName.setAlignment(Qt.AlignHCenter)
|
||||
self.projName.setWordWrap(True)
|
||||
|
||||
self.bookAuthors = QLabel(self.tr("By {0}").format(self.theProject.data.author))
|
||||
self.bookAuthors = QLabel("")
|
||||
authFont = self.bookAuthors.font()
|
||||
authFont.setPointSizeF(1.2*fPt)
|
||||
self.bookAuthors.setFont(authFont)
|
||||
@@ -251,11 +249,15 @@ class GuiProjectDetailsMain(QWidget):
|
||||
nwCount = pIndex.getNovelWordCount()
|
||||
edTime = self.theProject.getCurrentEditTime()
|
||||
|
||||
self.bookTitle.setText(self.theProject.data.title or self.theProject.data.name)
|
||||
self.projName.setText(self.tr("Project: {0}").format(self.theProject.data.name))
|
||||
self.bookAuthors.setText(self.tr("By {0}").format(self.theProject.data.author))
|
||||
|
||||
self.wordCountVal.setText(f"{nwCount:n}")
|
||||
self.chapCountVal.setText(f"{hCounts[2]:n}")
|
||||
self.sceneCountVal.setText(f"{hCounts[3]:n}")
|
||||
self.revCountVal.setText(f"{self.theProject.data.saveCount:n}")
|
||||
self.editTimeVal.setText(f"{edTime//3600:02d}:{edTime%3600//60:02d}")
|
||||
self.editTimeVal.setText(formatTime(edTime))
|
||||
|
||||
self.projPathVal.setText(str(self.theProject.storage.storagePath))
|
||||
|
||||
|
||||
@@ -1750,6 +1750,7 @@ class GuiDocEditor(QTextEdit):
|
||||
|
||||
# Remove existing format first, if any
|
||||
theText = theBlock.text()
|
||||
hasText = len(theText) > 0
|
||||
if theText.startswith("@"):
|
||||
logger.error("Cannot apply block format to keyword/value line")
|
||||
return False
|
||||
@@ -1855,11 +1856,17 @@ class GuiDocEditor(QTextEdit):
|
||||
posS = theCursor.selectionStart()
|
||||
theCursor.removeSelectedText()
|
||||
theCursor.setPosition(posS)
|
||||
if posS > 0:
|
||||
|
||||
if posS > 0 and hasText:
|
||||
# If the block already had text, we must insert a new block
|
||||
# first before we can add back the text to it.
|
||||
theCursor.insertBlock()
|
||||
|
||||
theCursor.insertText(theText)
|
||||
|
||||
if posO - cOffset >= 0:
|
||||
theCursor.setPosition(posO - cOffset)
|
||||
|
||||
theCursor.endEditBlock()
|
||||
self.setTextCursor(theCursor)
|
||||
|
||||
|
||||
@@ -34,12 +34,13 @@ from time import time
|
||||
from PyQt5.QtGui import QFont, QPalette
|
||||
from PyQt5.QtCore import Qt, QSize, pyqtSlot, pyqtSignal
|
||||
from PyQt5.QtWidgets import (
|
||||
QAbstractItemView, QActionGroup, QFrame, QHBoxLayout, QHeaderView, QMenu,
|
||||
QSizePolicy, QToolButton, QToolTip, QTreeWidget, QTreeWidgetItem,
|
||||
QVBoxLayout, QWidget
|
||||
QAbstractItemView, QActionGroup, QFrame, QHBoxLayout, QHeaderView,
|
||||
QInputDialog, QMenu, QSizePolicy, QToolButton, QToolTip, QTreeWidget,
|
||||
QTreeWidgetItem, QVBoxLayout, QWidget
|
||||
)
|
||||
|
||||
from novelwriter.enum import nwDocMode, nwItemClass, nwOutline
|
||||
from novelwriter.common import minmax
|
||||
from novelwriter.constants import nwHeaders, nwKeyWords, nwLabels, trConst
|
||||
from novelwriter.gui.components import NovelSelector
|
||||
|
||||
@@ -126,20 +127,28 @@ class GuiNovelView(QWidget):
|
||||
lastCol = self.theProject.options.getEnum(
|
||||
"GuiNovelView", "lastCol", NovelTreeColumn, NovelTreeColumn.HIDDEN
|
||||
)
|
||||
lastColSize = self.theProject.options.getInt(
|
||||
"GuiNovelView", "lastColSize", 25
|
||||
)
|
||||
|
||||
self.clearProject()
|
||||
|
||||
self.novelBar.buildNovelRootMenu()
|
||||
self.novelBar.setLastColType(lastCol, doRefresh=False)
|
||||
self.novelBar.setCurrentRoot(lastNovel)
|
||||
self.novelBar.setEnabled(True)
|
||||
|
||||
self.novelTree.setLastColSize(lastColSize)
|
||||
|
||||
return
|
||||
|
||||
def closeProjectTasks(self):
|
||||
"""Run closing project tasks.
|
||||
"""
|
||||
lastColType = self.novelTree.lastColType
|
||||
lastColSize = self.novelTree.lastColSize
|
||||
self.theProject.options.setValue("GuiNovelView", "lastCol", lastColType)
|
||||
self.theProject.options.setValue("GuiNovelView", "lastColSize", lastColSize)
|
||||
return
|
||||
|
||||
def setTreeFocus(self):
|
||||
@@ -233,6 +242,10 @@ class GuiNovelToolBar(QWidget):
|
||||
self._addLastColAction(NovelTreeColumn.FOCUS, self.tr("Focus Character"))
|
||||
self._addLastColAction(NovelTreeColumn.PLOT, self.tr("Novel Plot"))
|
||||
|
||||
self.mLastCol.addSeparator()
|
||||
self.aLastColSize = self.mLastCol.addAction(self.tr("Column Size"))
|
||||
self.aLastColSize.triggered.connect(self._selectLastColumnSize)
|
||||
|
||||
self.tbMore = QToolButton(self)
|
||||
self.tbMore.setToolTip(self.tr("More Options"))
|
||||
self.tbMore.setIconSize(QSize(iPx, iPx))
|
||||
@@ -339,6 +352,19 @@ class GuiNovelToolBar(QWidget):
|
||||
self.novelView.novelTree.refreshTree(rootHandle=rootHandle, overRide=True)
|
||||
return
|
||||
|
||||
@pyqtSlot()
|
||||
def _selectLastColumnSize(self):
|
||||
"""Set the maximum width for the last column.
|
||||
"""
|
||||
oldSize = self.novelView.novelTree.lastColSize
|
||||
newSize, isOk = QInputDialog.getInt(
|
||||
self, self.tr("Column Size"), self.tr("Maximum column size in %"), oldSize, 15, 75, 5
|
||||
)
|
||||
if isOk:
|
||||
self.novelView.novelTree.setLastColSize(newSize)
|
||||
self._refreshNovelTree()
|
||||
return
|
||||
|
||||
##
|
||||
# Internal Functions
|
||||
##
|
||||
@@ -379,10 +405,11 @@ class GuiNovelTree(QTreeWidget):
|
||||
self.theProject = novelView.mainGui.theProject
|
||||
|
||||
# Internal Variables
|
||||
self._treeMap = {}
|
||||
self._lastBuild = 0
|
||||
self._lastCol = NovelTreeColumn.POV
|
||||
self._actHandle = None
|
||||
self._treeMap = {}
|
||||
self._lastBuild = 0
|
||||
self._lastCol = NovelTreeColumn.POV
|
||||
self._lastColSize = 0.25
|
||||
self._actHandle = None
|
||||
|
||||
# Cached Strings
|
||||
self._povLabel = trConst(nwLabels.KEY_NAME[nwKeyWords.POV_KEY])
|
||||
@@ -470,6 +497,10 @@ class GuiNovelTree(QTreeWidget):
|
||||
def lastColType(self):
|
||||
return self._lastCol
|
||||
|
||||
@property
|
||||
def lastColSize(self):
|
||||
return int(self._lastColSize * 100)
|
||||
|
||||
##
|
||||
# Class Methods
|
||||
##
|
||||
@@ -552,6 +583,12 @@ class GuiNovelTree(QTreeWidget):
|
||||
self.refreshTree(rootHandle=lastNovel, overRide=True)
|
||||
return
|
||||
|
||||
def setLastColSize(self, colSize):
|
||||
"""Set the column size in integer values between 15 and 75.
|
||||
"""
|
||||
self._lastColSize = minmax(colSize, 15, 75)/100.0
|
||||
return
|
||||
|
||||
def setActiveHandle(self, tHandle):
|
||||
"""Highlight the rows associated with a given handle.
|
||||
"""
|
||||
@@ -619,7 +656,7 @@ class GuiNovelTree(QTreeWidget):
|
||||
newW = event.size().width()
|
||||
oldW = event.oldSize().width()
|
||||
if newW != oldW:
|
||||
eliW = int(0.25 * newW)
|
||||
eliW = int(self._lastColSize * newW)
|
||||
fMetric = self.fontMetrics()
|
||||
for i in range(self.topLevelItemCount()):
|
||||
trItem = self.topLevelItem(i)
|
||||
@@ -709,7 +746,7 @@ class GuiNovelTree(QTreeWidget):
|
||||
trItem.setData(self.C_MORE, Qt.DecorationRole, self._pMore)
|
||||
|
||||
# Custom column
|
||||
mW = int(0.25 * self.viewport().width())
|
||||
mW = int(self._lastColSize * self.viewport().width())
|
||||
lastText, toolTip = self._getLastColumnText(tHandle, sTitle)
|
||||
elideText = self.fontMetrics().elidedText(lastText, Qt.ElideRight, mW)
|
||||
trItem.setText(self.C_EXTRA, elideText)
|
||||
@@ -741,7 +778,7 @@ class GuiNovelTree(QTreeWidget):
|
||||
|
||||
if refData:
|
||||
toolText = ", ".join(refData)
|
||||
return refData[0], f"{refName}: {toolText}"
|
||||
return toolText, f"{refName}: {toolText}"
|
||||
|
||||
return "", ""
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<novelWriterXML appVersion="2.0.4" hexVersion="0x020004f0" fileVersion="1.5" timeStamp="2023-01-29 02:33:40">
|
||||
<project id="e2be99af-f9bf-4403-857a-c3d1ac25abea" saveCount="1468" autoCount="237" editTime="74401">
|
||||
<novelWriterXML appVersion="2.0.5" hexVersion="0x020005f0" fileVersion="1.5" timeStamp="2023-02-12 16:02:30">
|
||||
<project id="e2be99af-f9bf-4403-857a-c3d1ac25abea" saveCount="1471" autoCount="237" editTime="74437">
|
||||
<name>Sample Project</name>
|
||||
<title>Sample Project</title>
|
||||
<author>Jane Smith</author>
|
||||
|
||||
@@ -396,6 +396,36 @@ def buildQtI18nTS(sysArgs):
|
||||
return
|
||||
|
||||
|
||||
##
|
||||
# Generage MacOS PList
|
||||
##
|
||||
|
||||
def genMacOSPlist():
|
||||
"""Set necessary values for .plist file.
|
||||
"""
|
||||
numVers, _, _ = extractVersion()
|
||||
pkgVers = compactVersion(numVers)
|
||||
outDir = "setup/macos"
|
||||
|
||||
copyrightYear = datetime.datetime.now().year
|
||||
|
||||
# These keys are no longer used but are present for compatability
|
||||
pkgVersMaj, pkgVersMin, _ = pkgVers.split(".")
|
||||
|
||||
plistXML = readFile(f"{outDir}/Info.plist.template").format(
|
||||
macosBundleSVers=pkgVers,
|
||||
macosBundleVers=numVers,
|
||||
macosBundleVersMajor=pkgVersMaj,
|
||||
macosBundleVersMinor=pkgVersMin,
|
||||
macosBundleCopyright=f"Copyright 2018–{copyrightYear}, Veronica Berglyd Olsen",
|
||||
)
|
||||
|
||||
print(f"Writing Info.plist to {outDir}/Info.plist")
|
||||
writeFile(f"{outDir}/Info.plist", plistXML)
|
||||
|
||||
return
|
||||
|
||||
|
||||
##
|
||||
# Sample Project ZIP File Builder (sample)
|
||||
##
|
||||
@@ -1862,6 +1892,7 @@ if __name__ == "__main__":
|
||||
" The files to be updated must be provided as arguments.",
|
||||
" qtlrelease Build the language files for internationalisation.",
|
||||
" clean-assets Delete assets built by manual, sample and qtlrelease.",
|
||||
" gen-plist Generates an Info.plist for use in a MacOS Bundle",
|
||||
"",
|
||||
"Python Packaging:",
|
||||
"",
|
||||
@@ -1944,6 +1975,10 @@ if __name__ == "__main__":
|
||||
sys.argv.remove("clean-assets")
|
||||
cleanBuiltAssets()
|
||||
|
||||
if "gen-plist" in sys.argv:
|
||||
sys.argv.remove("gen-plist")
|
||||
genMacOSPlist()
|
||||
|
||||
# Python Packaging
|
||||
# ================
|
||||
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.cs.disable-library-validation</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>NSApplication</string>
|
||||
<key>NSHighResolutionCapable</key>
|
||||
<string>True</string>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>novelWriter</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>novelWriter: A markdown-like text editor for planning and writing novels.</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>novelwriter.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>io.novelwriter.novelWriter</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>novelWriter</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>novelWriter</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>{macosBundleSVers}</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>{macosBundleVers}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>{macosBundleCopyright}</string>
|
||||
<key>IFMajorVersion</key>
|
||||
<integer>{macosBundleVersMajor}</integer>
|
||||
<key>IFMinorVersion</key>
|
||||
<integer>{macosBundleVersMinor}</integer>
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>nwx</string>
|
||||
</array>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>novelWriter Project</string>
|
||||
<key>CFBundleTypeOSTypes</key>
|
||||
<array>
|
||||
<string>TEXT</string>
|
||||
<string>utxt</string>
|
||||
<string>TUTX</string>
|
||||
<string>****</string>
|
||||
</array>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
<key>LSHandlerRank</key>
|
||||
<string>Alternate</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
Executable
+171
@@ -0,0 +1,171 @@
|
||||
#! /bin/bash
|
||||
|
||||
# use RAM disk if possible
|
||||
if [ -d /dev/shm ]; then
|
||||
TEMP_BASE=/dev/shm
|
||||
else
|
||||
TEMP_BASE=/tmp
|
||||
fi
|
||||
|
||||
BUILD_DIR=$(mktemp -d "$TEMP_BASE/novelWriter-build-XXXXXX")
|
||||
|
||||
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||
|
||||
SRC_DIR="$SCRIPT_DIR/../.."
|
||||
|
||||
RLS_DIR="$SRC_DIR/dist_macos"
|
||||
|
||||
echo "Script Dir: $SCRIPT_DIR"
|
||||
|
||||
cleanup () {
|
||||
if [ -d "$BUILD_DIR" ]; then
|
||||
rm -rf "$BUILD_DIR"
|
||||
fi
|
||||
}
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
echo "Building in: $BUILD_DIR"
|
||||
|
||||
OLD_CWD="$(pwd)"
|
||||
|
||||
VERSION="$(awk '/^__version__/{print substr($NF,2,length($NF)-2)}' $SRC_DIR/novelwriter/__init__.py)"
|
||||
|
||||
pushd "$SRC_DIR" || exit 1
|
||||
|
||||
python3 setup.py gen-plist
|
||||
if [ -f $SRC_DIR/setup/macos/Info.plist ]; then
|
||||
echo "Found: setup/macos/Info.plist"
|
||||
else
|
||||
echo "Missing: setup/macos/Info.plist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check that other assets are present
|
||||
if [ -f $SRC_DIR/novelwriter/assets/sample.zip ]; then
|
||||
echo "Found: novelwriter/assets/sample.zip"
|
||||
else
|
||||
echo "Missing: novelwriter/assets/sample.zip"
|
||||
exit 1
|
||||
fi
|
||||
if [ -f $SRC_DIR/novelwriter/assets/manual.pdf ]; then
|
||||
echo "Found: novelwriter/assets/manual.pdf"
|
||||
else
|
||||
echo "Missing: novelwriter/assets/manual.pdf"
|
||||
exit 1
|
||||
fi
|
||||
if [ -f $SRC_DIR/novelwriter/assets/i18n/nw_en_US.qm ]; then
|
||||
echo "Found: novelwriter/assets/i18n/nw_en_US.qm"
|
||||
else
|
||||
echo "Missing: novelwriter/assets/i18n/nw_en_US.qm"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ls -lah .
|
||||
|
||||
popd || exit 1
|
||||
|
||||
pushd "$BUILD_DIR"/ || exit 1
|
||||
|
||||
echo "Downloading Miniconda ..."
|
||||
# install Miniconda, a self-contained Python distribution
|
||||
curl -LO https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
|
||||
bash Miniconda3-latest-MacOSX-x86_64.sh -b -p ~/miniconda -f
|
||||
rm Miniconda3-latest-MacOSX-x86_64.sh
|
||||
export PATH="$HOME/miniconda/bin:$PATH"
|
||||
|
||||
echo "Creating conda env ..."
|
||||
# create conda env
|
||||
conda create -n novelWriter -c conda-forge python=3.10 --yes
|
||||
source activate novelWriter
|
||||
|
||||
echo "installing dictionaries ..."
|
||||
conda install -c conda-forge enchant hunspell-en --yes
|
||||
|
||||
echo "installing python deps ..."
|
||||
# install dependencies
|
||||
pip install -r "$SRC_DIR/requirements.txt"
|
||||
|
||||
# leave conda env
|
||||
conda deactivate
|
||||
|
||||
echo "Building app bundle ..."
|
||||
# create .app Framework
|
||||
mkdir -p novelWriter.app/Contents/
|
||||
mkdir novelWriter.app/Contents/MacOS novelWriter.app/Contents/Resources novelWriter.app/Contents/Resources/novelWriter
|
||||
cp $SRC_DIR/setup/macos/Info.plist novelWriter.app/Contents/Info.plist
|
||||
|
||||
echo "Copying miniconda env to bundle ..."
|
||||
cp -R ~/miniconda/envs/novelWriter/* novelWriter.app/Contents/Resources/
|
||||
|
||||
echo "Copying novelWriter to bundle ..."
|
||||
FILES_COPY=(
|
||||
"CHANGELOG.md" "MANIFEST.in" "CREDITS.md" "LICENSE.md"
|
||||
"CONTRIBUTING.md" "CODE_OF_CONDUCT.md" "novelwriter"
|
||||
"novelWriter.py"
|
||||
)
|
||||
|
||||
for file in "${FILES_COPY[@]}"; do
|
||||
echo "Copying $SRC_DIR/$file ..."
|
||||
cp -R $SRC_DIR/$file novelWriter.app/Contents/Resources/novelWriter/
|
||||
done
|
||||
|
||||
cp $SRC_DIR/setup/macos/novelwriter.icns novelWriter.app/Contents/Resources/
|
||||
|
||||
# create entry script
|
||||
cat > novelWriter.app/Contents/MacOS/novelWriter <<\EOF
|
||||
#!/bin/bash
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
$DIR/../Resources/bin/python -sE $DIR/../Resources/novelWriter/novelWriter.py $@
|
||||
EOF
|
||||
|
||||
# make executable
|
||||
chmod a+x novelWriter.app/Contents/MacOS/novelWriter
|
||||
|
||||
#do codesigning
|
||||
#echo "Signing bundle ..."
|
||||
#sudo codesign --sign - --deep --force --entitlements "$SCRIPT_DIR/../macos/App.entitlements" --options runtime "novelWriter.app/Contents/MacOS/novelWriter"
|
||||
|
||||
# remove bloat
|
||||
pushd novelWriter.app/Contents/Resources || exit 1
|
||||
|
||||
echo "Cleaning unused files from bundle ..."
|
||||
# cleanup commands HERE
|
||||
find . -type d -iname '__pycache__' -print0 | xargs -0 rm -r
|
||||
|
||||
rm -rf pkgs
|
||||
rm -rf cmake
|
||||
rm -rf share/{gtk-,}doc
|
||||
|
||||
# Remove the files from the 3.1 symlink
|
||||
rm -rf lib/python3.1
|
||||
|
||||
# remove web engine
|
||||
rm lib/python3.*/site-packages/PyQt5/QtWebEngine* || true
|
||||
rm -r lib/python3.*/site-packages/PyQt5/Qt/translations/qtwebengine* || true
|
||||
rm lib/python3.*/site-packages/PyQt5/Qt/resources/qtwebengine* || true
|
||||
rm -r lib/python3.*/site-packages/PyQt5/Qt/qml/QtWebEngine* || true
|
||||
rm -r lib/python3.*/site-packages/PyQt5/Qt/plugins/webview/libqtwebview* || true
|
||||
rm lib/python3.*/site-packages/PyQt5/Qt/libexec/QtWebEngineProcess* || true
|
||||
rm lib/python3.*/site-packages/PyQt5/Qt/lib/libQt5WebEngine* || true
|
||||
|
||||
popd || exit 1
|
||||
popd || exit 1
|
||||
|
||||
echo "Packageing App ..."
|
||||
|
||||
mkdir -p $RLS_DIR
|
||||
|
||||
# generate .dmg
|
||||
|
||||
brew install create-dmg
|
||||
# "--skip-jenkins" is a temporary workaround for https://github.com/create-dmg/create-dmg/issues/72
|
||||
create-dmg --volname "novelWriter $VERSION" --volicon $SRC_DIR/setup/macos/novelwriter.icns \
|
||||
--window-pos 200 120 --window-size 800 400 --icon-size 100 --icon novelWriter.app 200 190 --hide-extension novelWriter.app \
|
||||
--app-drop-link 600 185 $RLS_DIR/novelWriter-"${VERSION}".dmg "$BUILD_DIR"/
|
||||
|
||||
pushd $BUILD_DIR || exit 1
|
||||
zip -qr novelWriter.app.zip novelWriter.app
|
||||
popd || exit 1
|
||||
|
||||
mv $BUILD_DIR/novelWriter.app.zip $RLS_DIR/novelWriter-"${VERSION}".app.zip
|
||||
Executable
+70
@@ -0,0 +1,70 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||
|
||||
function generate_linux () {
|
||||
echo "Generating on Linux ..."
|
||||
if ! command -v png2icns &> /dev/null
|
||||
then
|
||||
echo "png2icns cound not be found, it is required. Please install a package like icnsutils or libicns."
|
||||
exit
|
||||
fi
|
||||
|
||||
if ! command -v convert $> /dev/null
|
||||
then
|
||||
echo "convert could not be found, it is required. please install a imagemagick package."
|
||||
exit
|
||||
fi
|
||||
|
||||
mkdir -p $SCRIPT_DIR/icons
|
||||
|
||||
sizes=( 16 32 64 128 256 )
|
||||
for base in "${sizes[@]}"; do
|
||||
let basex2=${base}*2
|
||||
size="${base}x${base}"
|
||||
echo "Copying files for $size"
|
||||
double=${basex2}x${basex2}
|
||||
cp $SCRIPT_DIR/../data/hicolor/${size}/apps/novelwriter.png $SCRIPT_DIR/icons/icon_${size}.png
|
||||
echo "Resizing ${size}@2x to $double from $size"
|
||||
convert $SCRIPT_DIR/icons/icon_${size}.png -resize $double $SCRIPT_DIR/icons/icon_${size}@2x.png
|
||||
done
|
||||
|
||||
png2icns $SCRIPT_DIR/novelwriter.icns $SCRIPT_DIR/icons/icon_*.png
|
||||
|
||||
rm -r $SCRIPT_DIR/icons
|
||||
|
||||
echo "Done"
|
||||
}
|
||||
|
||||
function generate_macos () {
|
||||
echo "Generating on MacOs ..."
|
||||
mkdir -p $SCRIPT_DIR/icons
|
||||
|
||||
echo "Building Iconset ..."
|
||||
sizes=( 16 32 64 128 256 )
|
||||
for base in "${sizes[@]}"; do
|
||||
let basex2=${base}*2
|
||||
size="${base}x${base}"
|
||||
echo "Copying files for $size"
|
||||
double=${basex2}x${basex2}
|
||||
cp $SCRIPT_DIR/../data/hicolor/${size}/apps/novelwriter.png $SCRIPT_DIR/icons/icon_${size}.png
|
||||
cp $SCRIPT_DIR/../data/hicolor/${size}/apps/novelwriter.png $SCRIPT_DIR/icons/icon_${size}@2x.png
|
||||
echo "Resizing ${size}@2x to $double from $size"
|
||||
sips -Z $basex2 $SCRIPT_DIR/icons/icon_${size}@2x.png
|
||||
done
|
||||
|
||||
rm -rf $SCRIPT_DIR/novelwriter.iconset
|
||||
mv $SCRIPT_DIR/icons $SCRIPT_DIR/novelwriter.iconset
|
||||
|
||||
echo "Generating icns ..."
|
||||
iconutil -c icns $SCRIPT_DIR/novelwriter.iconset
|
||||
|
||||
echo "Done"
|
||||
}
|
||||
|
||||
unameOut="$(uname -s)"
|
||||
case "$unameOut" in
|
||||
Linux*) generate_linux;;
|
||||
Darwin*) generate_macos;;
|
||||
*) echo "Unsupported OS"
|
||||
esac
|
||||
Binary file not shown.
@@ -1,8 +1,14 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.text">
|
||||
<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text">
|
||||
<office:meta>
|
||||
<meta:creation-date>2022-01-02T19:56:15</meta:creation-date>
|
||||
<meta:generator>novelWriter/1.6-alpha0</meta:generator>
|
||||
<meta:creation-date>2023-02-12T15:10:11</meta:creation-date>
|
||||
<meta:generator>novelWriter/2.0.4</meta:generator>
|
||||
<meta:initial-creator>Jane Smith</meta:initial-creator>
|
||||
<meta:editing-cycles>1234</meta:editing-cycles>
|
||||
<meta:editing-duration>P42DT12H34M56S</meta:editing-duration>
|
||||
<dc:title>Test Project</dc:title>
|
||||
<dc:date>2023-02-12T15:10:11</dc:date>
|
||||
<dc:creator>Jane Smith</dc:creator>
|
||||
</office:meta>
|
||||
<office:font-face-decls>
|
||||
<style:font-face style:name="Liberation Serif" style:font-pitch="variable"/>
|
||||
@@ -66,7 +72,7 @@
|
||||
<office:master-styles>
|
||||
<style:master-page style:name="Standard" style:page-layout-name="PM1">
|
||||
<style:header>
|
||||
<text:p text:style-name="Header">/ / <text:page-number text:select-page="current">2</text:page-number></text:p>
|
||||
<text:p text:style-name="Header">Test Project / Jane Smith / <text:page-number text:select-page="current">2</text:page-number></text:p>
|
||||
</style:header>
|
||||
<style:header-first>
|
||||
<text:p text:style-name="Header"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" office:version="1.2">
|
||||
<office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" office:version="1.3">
|
||||
<office:font-face-decls>
|
||||
<style:font-face style:name="Liberation Serif" style:font-pitch="variable"/>
|
||||
</office:font-face-decls>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<manifest:manifest xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0" manifest:version="1.2">
|
||||
<manifest:file-entry manifest:full-path="/" manifest:version="1.2" manifest:media-type="application/vnd.oasis.opendocument.text"/>
|
||||
<manifest:manifest xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0" manifest:version="1.3">
|
||||
<manifest:file-entry manifest:full-path="/" manifest:version="1.3" manifest:media-type="application/vnd.oasis.opendocument.text"/>
|
||||
<manifest:file-entry manifest:full-path="settings.xml" manifest:media-type="text/xml"/>
|
||||
<manifest:file-entry manifest:full-path="content.xml" manifest:media-type="text/xml"/>
|
||||
<manifest:file-entry manifest:full-path="meta.xml" manifest:media-type="text/xml"/>
|
||||
|
||||
@@ -1,7 +1,13 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<office:document-meta xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" office:version="1.2">
|
||||
<office:document-meta xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" office:version="1.3">
|
||||
<office:meta>
|
||||
<meta:creation-date>2021-08-13T18:54:46</meta:creation-date>
|
||||
<meta:generator>novelWriter/1.5-alpha0</meta:generator>
|
||||
<meta:creation-date>2023-02-12T15:09:03</meta:creation-date>
|
||||
<meta:generator>novelWriter/2.0.4</meta:generator>
|
||||
<meta:initial-creator>Jane Smith</meta:initial-creator>
|
||||
<meta:editing-cycles>1234</meta:editing-cycles>
|
||||
<meta:editing-duration>P42DT12H34M56S</meta:editing-duration>
|
||||
<dc:title>Test Project</dc:title>
|
||||
<dc:date>2023-02-12T15:09:03</dc:date>
|
||||
<dc:creator>Jane Smith</dc:creator>
|
||||
</office:meta>
|
||||
</office:document-meta>
|
||||
|
||||
@@ -1,4 +1,2 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<office:document-settings xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0">
|
||||
<office:settings/>
|
||||
</office:document-settings>
|
||||
<office:document-settings xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" office:version="1.3"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<office:document-styles xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" office:version="1.2">
|
||||
<office:document-styles xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" office:version="1.3">
|
||||
<office:font-face-decls>
|
||||
<style:font-face style:name="Liberation Serif" style:font-pitch="variable"/>
|
||||
</office:font-face-decls>
|
||||
@@ -59,7 +59,7 @@
|
||||
<office:master-styles>
|
||||
<style:master-page style:name="Standard" style:page-layout-name="PM1">
|
||||
<style:header>
|
||||
<text:p text:style-name="Header">/ / <text:page-number text:select-page="current">2</text:page-number></text:p>
|
||||
<text:p text:style-name="Header">Test Project / Jane Smith / <text:page-number text:select-page="current">2</text:page-number></text:p>
|
||||
</style:header>
|
||||
<style:header-first>
|
||||
<text:p text:style-name="Header"/>
|
||||
|
||||
@@ -1,8 +1,14 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.text">
|
||||
<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text">
|
||||
<office:meta>
|
||||
<meta:creation-date>2022-01-02T19:51:47</meta:creation-date>
|
||||
<meta:generator>novelWriter/1.6-alpha0</meta:generator>
|
||||
<meta:creation-date>2023-02-12T14:52:03</meta:creation-date>
|
||||
<meta:generator>novelWriter/2.0.4</meta:generator>
|
||||
<meta:initial-creator>lipsum.com</meta:initial-creator>
|
||||
<meta:editing-cycles>38</meta:editing-cycles>
|
||||
<meta:editing-duration>P0DT0H31M40S</meta:editing-duration>
|
||||
<dc:title>Lorem Ipsum</dc:title>
|
||||
<dc:date>2023-02-12T14:52:03</dc:date>
|
||||
<dc:creator>lipsum.com</dc:creator>
|
||||
</office:meta>
|
||||
<office:font-face-decls>
|
||||
<style:font-face style:name="DejaVu Sans" style:font-pitch="variable"/>
|
||||
@@ -87,7 +93,7 @@
|
||||
</office:master-styles>
|
||||
<office:body>
|
||||
<office:text>
|
||||
<text:h text:style-name="Title">Lorem Ipsum</text:h>
|
||||
<text:p text:style-name="Title">Lorem Ipsum</text:p>
|
||||
<text:p text:style-name="P1"><text:span text:style-name="T1">By lipsum.com</text:span></text:p>
|
||||
<text:p text:style-name="P1">“Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit…”</text:p>
|
||||
<text:p text:style-name="P1">“There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain…”</text:p>
|
||||
|
||||
@@ -1,8 +1,14 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.text">
|
||||
<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text">
|
||||
<office:meta>
|
||||
<meta:creation-date>2022-01-02T19:52:00</meta:creation-date>
|
||||
<meta:generator>novelWriter/1.6-alpha0</meta:generator>
|
||||
<meta:creation-date>2023-02-12T15:00:22</meta:creation-date>
|
||||
<meta:generator>novelWriter/2.0.4</meta:generator>
|
||||
<meta:initial-creator>lipsum.com</meta:initial-creator>
|
||||
<meta:editing-cycles>38</meta:editing-cycles>
|
||||
<meta:editing-duration>P0DT0H31M40S</meta:editing-duration>
|
||||
<dc:title>Lorem Ipsum</dc:title>
|
||||
<dc:date>2023-02-12T15:00:22</dc:date>
|
||||
<dc:creator>lipsum.com</dc:creator>
|
||||
</office:meta>
|
||||
<office:font-face-decls>
|
||||
<style:font-face style:name="DejaVu Sans" style:font-pitch="variable"/>
|
||||
@@ -99,7 +105,7 @@
|
||||
</office:master-styles>
|
||||
<office:body>
|
||||
<office:text>
|
||||
<text:h text:style-name="Title">Lorem Ipsum</text:h>
|
||||
<text:p text:style-name="Title">Lorem Ipsum</text:p>
|
||||
<text:p text:style-name="P1"><text:span text:style-name="T1">By lipsum.com</text:span></text:p>
|
||||
<text:p text:style-name="P1">“Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit…”</text:p>
|
||||
<text:p text:style-name="P1">“There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain…”</text:p>
|
||||
@@ -180,19 +186,19 @@
|
||||
<text:p text:style-name="Text_20_body">Donec luctus lectus efficitur, blandit nisi vitae, dignissim tellus. Pellentesque euismod pharetra augue gravida hendrerit. Quisque nisi mi, mattis ac nisi non, maximus malesuada ante. Nulla lobortis, diam eu ornare ornare, tellus enim feugiat arcu, non vestibulum tortor nunc eu justo. Integer blandit felis justo, eu semper est scelerisque vel. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nam ultricies, nisi vel elementum commodo, nisl dolor tincidunt magna, sed varius est nunc at lectus. Aliquam dolor tortor, sodales placerat ultricies quis, sodales quis sapien. Duis ullamcorper sollicitudin risus at mattis. Integer consequat et nunc at condimentum. Pellentesque cursus congue augue, non suscipit lectus sodales ut. Nam a mi bibendum, blandit nisl eu, accumsan nunc. Aliquam a ex mauris. Sed nec sem quis arcu dignissim tempus eget et turpis. Ut sed ex nec ipsum ultrices lobortis.</text:p>
|
||||
<text:p text:style-name="Text_20_body">Pellentesque rhoncus pharetra eros, non mollis nisi pretium non. Mauris accumsan quis odio quis euismod. Maecenas ultrices, augue et aliquam tincidunt, erat tellus ornare ligula, quis ultrices turpis nibh vel justo. Fusce gravida odio tellus. In a congue diam. Mauris consequat ex id leo lacinia dictum. Fusce id sem sodales, ultrices sapien ac, convallis orci. Donec gravida nunc sit amet nisi hendrerit, sed porta enim aliquam. In hac habitasse platea dictumst. Cras a orci felis. Curabitur non felis nec urna maximus auctor ut ut nisi. Curabitur at turpis eleifend, blandit eros at, molestie odio. Phasellus euismod neque augue.</text:p>
|
||||
<text:p text:style-name="Text_20_body">Integer egestas maximus leo eu facilisis. Nunc rhoncus dignissim lectus eu lacinia. Praesent lacinia urna porttitor aliquam condimentum. Nulla eu eros dictum, dictum nunc vitae, sagittis nibh. Integer ante neque, consequat nec sollicitudin id, consectetur vitae dolor. Nullam volutpat sem orci, quis viverra magna auctor a. Suspendisse potenti. Maecenas commodo sed neque pellentesque vehicula. Sed luctus nisl risus, elementum semper purus interdum vel. Ut pulvinar, massa sit amet venenatis placerat, nunc lacus hendrerit odio, non aliquet nunc risus eu lectus. Maecenas feugiat semper ligula, id lobortis sem porta eu. Integer posuere elit magna, at mollis eros bibendum et. Ut imperdiet purus vel nulla aliquam maximus. Morbi sodales purus tellus, a rhoncus sem rutrum sit amet. Quisque risus sem, laoreet nec convallis nec, rutrum vitae justo.</text:p>
|
||||
<text:h text:style-name="P7">Notes: Characters</text:h>
|
||||
<text:p text:style-name="P7">Notes: Characters</text:p>
|
||||
<text:h text:style-name="Heading_20_1" text:outline-level="1">Nobody Owens</text:h>
|
||||
<text:p text:style-name="P5"><text:span text:style-name="T1">Tag:</text:span> Bod</text:p>
|
||||
<text:p text:style-name="Text_20_Meta"><text:span text:style-name="T1">Plot:</text:span> Main</text:p>
|
||||
<text:p text:style-name="Text_20_body">Pellentesque nec erat ut nulla posuere commodo. Curabitur nisi augue, imperdiet et porta imperdiet, efficitur id leo. Cras finibus arcu at nibh commodo congue. Proin suscipit placerat condimentum. Aenean ante enim, cursus id lorem a, blandit venenatis nibh. Maecenas suscipit porta elit, sit amet porta felis porttitor eu. Sed a dui nibh. Phasellus sed faucibus dui. Pellentesque felis nulla, ultrices non efficitur quis, rutrum id mi. Mauris tempus auctor nisl, in bibendum enim pellentesque sit amet. Proin nunc lacus, imperdiet nec posuere ac, interdum non lectus.</text:p>
|
||||
<text:p text:style-name="Text_20_body">Suspendisse faucibus est auctor orci mollis luctus. Praesent quis sodales neque. Interdum et malesuada fames ac ante ipsum primis in faucibus. Donec sodales rutrum mattis. In in sem ornare, consequat nulla ac, convallis arcu. Duis ac metus id felis commodo commodo sit amet eget diam. Curabitur rhoncus lacinia leo at sodales. Etiam finibus porta diam a viverra. Praesent nisi urna, volutpat sit amet odio at, vehicula vehicula leo. In non enim eget nisl luctus commodo. Pellentesque pellentesque at lectus at luctus. Quisque nec felis bibendum, lacinia libero ut, lacinia eros. Integer finibus ultricies nibh sit amet placerat.</text:p>
|
||||
<text:p text:style-name="Text_20_body">Nullam scelerisque velit et tortor congue vestibulum a at nisi. Vivamus sodales ut turpis a convallis. In dignissim nibh at luctus sodales. Etiam sit amet rhoncus massa. Phasellus ligula magna, sollicitudin non imperdiet sit amet, volutpat vel magna. Nunc vestibulum tempor lectus, sit amet porta nunc hendrerit in. Curabitur non odio sit amet massa tincidunt facilisis. Integer et luctus nunc, eget euismod leo. Praesent faucibus metus sed purus convallis scelerisque. Fusce viverra lorem et placerat malesuada. In at elit malesuada, ullamcorper risus vitae, sodales dolor. Donec quis elementum lectus. Quisque eu eros at dui imperdiet euismod ut id neque.</text:p>
|
||||
<text:h text:style-name="P7">Notes: Plot</text:h>
|
||||
<text:p text:style-name="P7">Notes: Plot</text:p>
|
||||
<text:h text:style-name="Heading_20_1" text:outline-level="1">Main Plot</text:h>
|
||||
<text:p text:style-name="Text_20_Meta"><text:span text:style-name="T1">Tag:</text:span> Main</text:p>
|
||||
<text:p text:style-name="Text_20_body">Suspendisse vulputate malesuada pellentesque. Aenean sollicitudin cursus mi, vitae ultricies felis ullamcorper eu. Duis luctus risus mi, in accumsan velit cursus ut. Vestibulum eleifend leo in magna eleifend fermentum. Proin nec ornare elit. Phasellus nec interdum risus. In a volutpat augue, quis egestas justo. Morbi porta mauris mattis bibendum imperdiet.</text:p>
|
||||
<text:p text:style-name="Text_20_body">Mauris ut erat eu lorem malesuada egestas vel vel urna. Maecenas ac semper quam. Maecenas aliquet metus non interdum mattis. Proin consectetur molestie ligula. Aliquam sollicitudin pulvinar urna a pellentesque. Suspendisse ultrices, est mattis scelerisque porta, nisi nisi laoreet nisl, non condimentum quam ante a velit. Proin scelerisque justo augue, nec laoreet ligula egestas at. Etiam enim quam, ultrices non accumsan hendrerit, elementum vel ligula. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nam efficitur odio libero, in vestibulum arcu aliquam at. Cras non vehicula augue. Integer lobortis, est vitae aliquam facilisis, metus ligula aliquet eros, at porttitor sem tortor eget massa. Aliquam varius scelerisque neque sed gravida. Aenean eleifend lorem id ante elementum sollicitudin. Proin commodo massa a quam volutpat, mollis fermentum turpis efficitur.</text:p>
|
||||
<text:h text:style-name="P7">Notes: World</text:h>
|
||||
<text:p text:style-name="P7">Notes: World</text:p>
|
||||
<text:h text:style-name="Heading_20_1" text:outline-level="1">Ancient Europe</text:h>
|
||||
<text:p text:style-name="Text_20_Meta"><text:span text:style-name="T1">Tag:</text:span> Europe</text:p>
|
||||
<text:p text:style-name="Text_20_body">Vivamus sodales risus ac accumsan posuere. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nunc vel enim felis. Vestibulum dignissim massa nunc, a auctor magna eleifend et. Proin dignissim sodales erat vitae convallis. Aliquam id tellus dui. Curabitur sollicitudin scelerisque ex sit amet posuere. Nam rutrum felis id rhoncus feugiat. Duis sagittis quam quis purus efficitur, quis rutrum odio iaculis. Maecenas semper ante turpis, at vulputate mi consectetur non. Sed rutrum nibh turpis, quis rhoncus purus ornare quis. Vestibulum at rutrum mauris. Integer dolor nisi, tincidunt eget vehicula ac, ultricies at ligula.</text:p>
|
||||
|
||||
@@ -1,8 +1,14 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.text">
|
||||
<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text">
|
||||
<office:meta>
|
||||
<meta:creation-date>2022-01-02T19:52:33</meta:creation-date>
|
||||
<meta:generator>novelWriter/1.6-alpha0</meta:generator>
|
||||
<meta:creation-date>2023-02-12T15:01:25</meta:creation-date>
|
||||
<meta:generator>novelWriter/2.0.4</meta:generator>
|
||||
<meta:initial-creator>lipsum.com</meta:initial-creator>
|
||||
<meta:editing-cycles>38</meta:editing-cycles>
|
||||
<meta:editing-duration>P0DT0H31M40S</meta:editing-duration>
|
||||
<dc:title>Lorem Ipsum</dc:title>
|
||||
<dc:date>2023-02-12T15:01:25</dc:date>
|
||||
<dc:creator>lipsum.com</dc:creator>
|
||||
</office:meta>
|
||||
<office:font-face-decls>
|
||||
<style:font-face style:name="DejaVu Sans" style:font-pitch="variable"/>
|
||||
@@ -99,7 +105,7 @@
|
||||
</office:master-styles>
|
||||
<office:body>
|
||||
<office:text>
|
||||
<text:h text:style-name="Title">Lorem Ipsum</text:h>
|
||||
<text:p text:style-name="Title">Lorem Ipsum</text:p>
|
||||
<text:p text:style-name="P1"><text:span text:style-name="T1">By lipsum.com</text:span></text:p>
|
||||
<text:p text:style-name="P1">“Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit…”</text:p>
|
||||
<text:p text:style-name="P1">“There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain…”</text:p>
|
||||
@@ -180,19 +186,19 @@
|
||||
<text:p text:style-name="Text_20_body">Donec luctus lectus efficitur, blandit nisi vitae, dignissim tellus. Pellentesque euismod pharetra augue gravida hendrerit. Quisque nisi mi, mattis ac nisi non, maximus malesuada ante. Nulla lobortis, diam eu ornare ornare, tellus enim feugiat arcu, non vestibulum tortor nunc eu justo. Integer blandit felis justo, eu semper est scelerisque vel. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nam ultricies, nisi vel elementum commodo, nisl dolor tincidunt magna, sed varius est nunc at lectus. Aliquam dolor tortor, sodales placerat ultricies quis, sodales quis sapien. Duis ullamcorper sollicitudin risus at mattis. Integer consequat et nunc at condimentum. Pellentesque cursus congue augue, non suscipit lectus sodales ut. Nam a mi bibendum, blandit nisl eu, accumsan nunc. Aliquam a ex mauris. Sed nec sem quis arcu dignissim tempus eget et turpis. Ut sed ex nec ipsum ultrices lobortis.</text:p>
|
||||
<text:p text:style-name="Text_20_body">Pellentesque rhoncus pharetra eros, non mollis nisi pretium non. Mauris accumsan quis odio quis euismod. Maecenas ultrices, augue et aliquam tincidunt, erat tellus ornare ligula, quis ultrices turpis nibh vel justo. Fusce gravida odio tellus. In a congue diam. Mauris consequat ex id leo lacinia dictum. Fusce id sem sodales, ultrices sapien ac, convallis orci. Donec gravida nunc sit amet nisi hendrerit, sed porta enim aliquam. In hac habitasse platea dictumst. Cras a orci felis. Curabitur non felis nec urna maximus auctor ut ut nisi. Curabitur at turpis eleifend, blandit eros at, molestie odio. Phasellus euismod neque augue.</text:p>
|
||||
<text:p text:style-name="Text_20_body">Integer egestas maximus leo eu facilisis. Nunc rhoncus dignissim lectus eu lacinia. Praesent lacinia urna porttitor aliquam condimentum. Nulla eu eros dictum, dictum nunc vitae, sagittis nibh. Integer ante neque, consequat nec sollicitudin id, consectetur vitae dolor. Nullam volutpat sem orci, quis viverra magna auctor a. Suspendisse potenti. Maecenas commodo sed neque pellentesque vehicula. Sed luctus nisl risus, elementum semper purus interdum vel. Ut pulvinar, massa sit amet venenatis placerat, nunc lacus hendrerit odio, non aliquet nunc risus eu lectus. Maecenas feugiat semper ligula, id lobortis sem porta eu. Integer posuere elit magna, at mollis eros bibendum et. Ut imperdiet purus vel nulla aliquam maximus. Morbi sodales purus tellus, a rhoncus sem rutrum sit amet. Quisque risus sem, laoreet nec convallis nec, rutrum vitae justo.</text:p>
|
||||
<text:h text:style-name="P7">Notes: Characters</text:h>
|
||||
<text:p text:style-name="P7">Notes: Characters</text:p>
|
||||
<text:h text:style-name="Heading_20_1" text:outline-level="1">Nobody Owens</text:h>
|
||||
<text:p text:style-name="P5"><text:span text:style-name="T1">Tag:</text:span> Bod</text:p>
|
||||
<text:p text:style-name="Text_20_Meta"><text:span text:style-name="T1">Plot:</text:span> Main</text:p>
|
||||
<text:p text:style-name="Text_20_body">Pellentesque nec erat ut nulla posuere commodo. Curabitur nisi augue, imperdiet et porta imperdiet, efficitur id leo. Cras finibus arcu at nibh commodo congue. Proin suscipit placerat condimentum. Aenean ante enim, cursus id lorem a, blandit venenatis nibh. Maecenas suscipit porta elit, sit amet porta felis porttitor eu. Sed a dui nibh. Phasellus sed faucibus dui. Pellentesque felis nulla, ultrices non efficitur quis, rutrum id mi. Mauris tempus auctor nisl, in bibendum enim pellentesque sit amet. Proin nunc lacus, imperdiet nec posuere ac, interdum non lectus.</text:p>
|
||||
<text:p text:style-name="Text_20_body">Suspendisse faucibus est auctor orci mollis luctus. Praesent quis sodales neque. Interdum et malesuada fames ac ante ipsum primis in faucibus. Donec sodales rutrum mattis. In in sem ornare, consequat nulla ac, convallis arcu. Duis ac metus id felis commodo commodo sit amet eget diam. Curabitur rhoncus lacinia leo at sodales. Etiam finibus porta diam a viverra. Praesent nisi urna, volutpat sit amet odio at, vehicula vehicula leo. In non enim eget nisl luctus commodo. Pellentesque pellentesque at lectus at luctus. Quisque nec felis bibendum, lacinia libero ut, lacinia eros. Integer finibus ultricies nibh sit amet placerat.</text:p>
|
||||
<text:p text:style-name="Text_20_body">Nullam scelerisque velit et tortor congue vestibulum a at nisi. Vivamus sodales ut turpis a convallis. In dignissim nibh at luctus sodales. Etiam sit amet rhoncus massa. Phasellus ligula magna, sollicitudin non imperdiet sit amet, volutpat vel magna. Nunc vestibulum tempor lectus, sit amet porta nunc hendrerit in. Curabitur non odio sit amet massa tincidunt facilisis. Integer et luctus nunc, eget euismod leo. Praesent faucibus metus sed purus convallis scelerisque. Fusce viverra lorem et placerat malesuada. In at elit malesuada, ullamcorper risus vitae, sodales dolor. Donec quis elementum lectus. Quisque eu eros at dui imperdiet euismod ut id neque.</text:p>
|
||||
<text:h text:style-name="P7">Notes: Plot</text:h>
|
||||
<text:p text:style-name="P7">Notes: Plot</text:p>
|
||||
<text:h text:style-name="Heading_20_1" text:outline-level="1">Main Plot</text:h>
|
||||
<text:p text:style-name="Text_20_Meta"><text:span text:style-name="T1">Tag:</text:span> Main</text:p>
|
||||
<text:p text:style-name="Text_20_body">Suspendisse vulputate malesuada pellentesque. Aenean sollicitudin cursus mi, vitae ultricies felis ullamcorper eu. Duis luctus risus mi, in accumsan velit cursus ut. Vestibulum eleifend leo in magna eleifend fermentum. Proin nec ornare elit. Phasellus nec interdum risus. In a volutpat augue, quis egestas justo. Morbi porta mauris mattis bibendum imperdiet.</text:p>
|
||||
<text:p text:style-name="Text_20_body">Mauris ut erat eu lorem malesuada egestas vel vel urna. Maecenas ac semper quam. Maecenas aliquet metus non interdum mattis. Proin consectetur molestie ligula. Aliquam sollicitudin pulvinar urna a pellentesque. Suspendisse ultrices, est mattis scelerisque porta, nisi nisi laoreet nisl, non condimentum quam ante a velit. Proin scelerisque justo augue, nec laoreet ligula egestas at. Etiam enim quam, ultrices non accumsan hendrerit, elementum vel ligula. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nam efficitur odio libero, in vestibulum arcu aliquam at. Cras non vehicula augue. Integer lobortis, est vitae aliquam facilisis, metus ligula aliquet eros, at porttitor sem tortor eget massa. Aliquam varius scelerisque neque sed gravida. Aenean eleifend lorem id ante elementum sollicitudin. Proin commodo massa a quam volutpat, mollis fermentum turpis efficitur.</text:p>
|
||||
<text:h text:style-name="P7">Notes: World</text:h>
|
||||
<text:p text:style-name="P7">Notes: World</text:p>
|
||||
<text:h text:style-name="Heading_20_1" text:outline-level="1">Ancient Europe</text:h>
|
||||
<text:p text:style-name="Text_20_Meta"><text:span text:style-name="T1">Tag:</text:span> Europe</text:p>
|
||||
<text:p text:style-name="Text_20_body">Vivamus sodales risus ac accumsan posuere. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nunc vel enim felis. Vestibulum dignissim massa nunc, a auctor magna eleifend et. Proin dignissim sodales erat vitae convallis. Aliquam id tellus dui. Curabitur sollicitudin scelerisque ex sit amet posuere. Nam rutrum felis id rhoncus feugiat. Duis sagittis quam quis purus efficitur, quis rutrum odio iaculis. Maecenas semper ante turpis, at vulputate mi consectetur non. Sed rutrum nibh turpis, quis rhoncus purus ornare quis. Vestibulum at rutrum mauris. Integer dolor nisi, tincidunt eget vehicula ac, ultricies at ligula.</text:p>
|
||||
|
||||
@@ -1,8 +1,14 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.text">
|
||||
<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.text">
|
||||
<office:meta>
|
||||
<meta:creation-date>2023-01-11T10:54:59</meta:creation-date>
|
||||
<meta:generator>novelWriter/2.0.3</meta:generator>
|
||||
<meta:creation-date>2023-02-12T17:28:07</meta:creation-date>
|
||||
<meta:generator>novelWriter/2.0.5</meta:generator>
|
||||
<meta:initial-creator>lipsum.com</meta:initial-creator>
|
||||
<meta:editing-cycles>38</meta:editing-cycles>
|
||||
<meta:editing-duration>P0DT0H31M40S</meta:editing-duration>
|
||||
<dc:title>Lorem Ipsum</dc:title>
|
||||
<dc:date>2023-02-12T17:28:07</dc:date>
|
||||
<dc:creator>lipsum.com</dc:creator>
|
||||
</office:meta>
|
||||
<office:font-face-decls>
|
||||
<style:font-face style:name="Arial" style:font-pitch="variable"/>
|
||||
@@ -99,7 +105,7 @@
|
||||
</office:master-styles>
|
||||
<office:body>
|
||||
<office:text>
|
||||
<text:h text:style-name="Title">Lorem Ipsum</text:h>
|
||||
<text:p text:style-name="Title">Lorem Ipsum</text:p>
|
||||
<text:p text:style-name="P1"><text:span text:style-name="T1">By lipsum.com</text:span></text:p>
|
||||
<text:p text:style-name="P1">“Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit…”</text:p>
|
||||
<text:p text:style-name="P1">“There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain…”</text:p>
|
||||
@@ -180,19 +186,19 @@
|
||||
<text:p text:style-name="Text_20_body">Donec luctus lectus efficitur, blandit nisi vitae, dignissim tellus. Pellentesque euismod pharetra augue gravida hendrerit. Quisque nisi mi, mattis ac nisi non, maximus malesuada ante. Nulla lobortis, diam eu ornare ornare, tellus enim feugiat arcu, non vestibulum tortor nunc eu justo. Integer blandit felis justo, eu semper est scelerisque vel. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nam ultricies, nisi vel elementum commodo, nisl dolor tincidunt magna, sed varius est nunc at lectus. Aliquam dolor tortor, sodales placerat ultricies quis, sodales quis sapien. Duis ullamcorper sollicitudin risus at mattis. Integer consequat et nunc at condimentum. Pellentesque cursus congue augue, non suscipit lectus sodales ut. Nam a mi bibendum, blandit nisl eu, accumsan nunc. Aliquam a ex mauris. Sed nec sem quis arcu dignissim tempus eget et turpis. Ut sed ex nec ipsum ultrices lobortis.</text:p>
|
||||
<text:p text:style-name="Text_20_body">Pellentesque rhoncus pharetra eros, non mollis nisi pretium non. Mauris accumsan quis odio quis euismod. Maecenas ultrices, augue et aliquam tincidunt, erat tellus ornare ligula, quis ultrices turpis nibh vel justo. Fusce gravida odio tellus. In a congue diam. Mauris consequat ex id leo lacinia dictum. Fusce id sem sodales, ultrices sapien ac, convallis orci. Donec gravida nunc sit amet nisi hendrerit, sed porta enim aliquam. In hac habitasse platea dictumst. Cras a orci felis. Curabitur non felis nec urna maximus auctor ut ut nisi. Curabitur at turpis eleifend, blandit eros at, molestie odio. Phasellus euismod neque augue.</text:p>
|
||||
<text:p text:style-name="Text_20_body">Integer egestas maximus leo eu facilisis. Nunc rhoncus dignissim lectus eu lacinia. Praesent lacinia urna porttitor aliquam condimentum. Nulla eu eros dictum, dictum nunc vitae, sagittis nibh. Integer ante neque, consequat nec sollicitudin id, consectetur vitae dolor. Nullam volutpat sem orci, quis viverra magna auctor a. Suspendisse potenti. Maecenas commodo sed neque pellentesque vehicula. Sed luctus nisl risus, elementum semper purus interdum vel. Ut pulvinar, massa sit amet venenatis placerat, nunc lacus hendrerit odio, non aliquet nunc risus eu lectus. Maecenas feugiat semper ligula, id lobortis sem porta eu. Integer posuere elit magna, at mollis eros bibendum et. Ut imperdiet purus vel nulla aliquam maximus. Morbi sodales purus tellus, a rhoncus sem rutrum sit amet. Quisque risus sem, laoreet nec convallis nec, rutrum vitae justo.</text:p>
|
||||
<text:h text:style-name="P7">Notes: Characters</text:h>
|
||||
<text:p text:style-name="P7">Notes: Characters</text:p>
|
||||
<text:h text:style-name="Heading_20_1" text:outline-level="1">Nobody Owens</text:h>
|
||||
<text:p text:style-name="P5"><text:span text:style-name="T1">Tag:</text:span> Bod</text:p>
|
||||
<text:p text:style-name="Text_20_Meta"><text:span text:style-name="T1">Plot:</text:span> Main</text:p>
|
||||
<text:p text:style-name="Text_20_body">Pellentesque nec erat ut nulla posuere commodo. Curabitur nisi augue, imperdiet et porta imperdiet, efficitur id leo. Cras finibus arcu at nibh commodo congue. Proin suscipit placerat condimentum. Aenean ante enim, cursus id lorem a, blandit venenatis nibh. Maecenas suscipit porta elit, sit amet porta felis porttitor eu. Sed a dui nibh. Phasellus sed faucibus dui. Pellentesque felis nulla, ultrices non efficitur quis, rutrum id mi. Mauris tempus auctor nisl, in bibendum enim pellentesque sit amet. Proin nunc lacus, imperdiet nec posuere ac, interdum non lectus.</text:p>
|
||||
<text:p text:style-name="Text_20_body">Suspendisse faucibus est auctor orci mollis luctus. Praesent quis sodales neque. Interdum et malesuada fames ac ante ipsum primis in faucibus. Donec sodales rutrum mattis. In in sem ornare, consequat nulla ac, convallis arcu. Duis ac metus id felis commodo commodo sit amet eget diam. Curabitur rhoncus lacinia leo at sodales. Etiam finibus porta diam a viverra. Praesent nisi urna, volutpat sit amet odio at, vehicula vehicula leo. In non enim eget nisl luctus commodo. Pellentesque pellentesque at lectus at luctus. Quisque nec felis bibendum, lacinia libero ut, lacinia eros. Integer finibus ultricies nibh sit amet placerat.</text:p>
|
||||
<text:p text:style-name="Text_20_body">Nullam scelerisque velit et tortor congue vestibulum a at nisi. Vivamus sodales ut turpis a convallis. In dignissim nibh at luctus sodales. Etiam sit amet rhoncus massa. Phasellus ligula magna, sollicitudin non imperdiet sit amet, volutpat vel magna. Nunc vestibulum tempor lectus, sit amet porta nunc hendrerit in. Curabitur non odio sit amet massa tincidunt facilisis. Integer et luctus nunc, eget euismod leo. Praesent faucibus metus sed purus convallis scelerisque. Fusce viverra lorem et placerat malesuada. In at elit malesuada, ullamcorper risus vitae, sodales dolor. Donec quis elementum lectus. Quisque eu eros at dui imperdiet euismod ut id neque.</text:p>
|
||||
<text:h text:style-name="P7">Notes: Plot</text:h>
|
||||
<text:p text:style-name="P7">Notes: Plot</text:p>
|
||||
<text:h text:style-name="Heading_20_1" text:outline-level="1">Main Plot</text:h>
|
||||
<text:p text:style-name="Text_20_Meta"><text:span text:style-name="T1">Tag:</text:span> Main</text:p>
|
||||
<text:p text:style-name="Text_20_body">Suspendisse vulputate malesuada pellentesque. Aenean sollicitudin cursus mi, vitae ultricies felis ullamcorper eu. Duis luctus risus mi, in accumsan velit cursus ut. Vestibulum eleifend leo in magna eleifend fermentum. Proin nec ornare elit. Phasellus nec interdum risus. In a volutpat augue, quis egestas justo. Morbi porta mauris mattis bibendum imperdiet.</text:p>
|
||||
<text:p text:style-name="Text_20_body">Mauris ut erat eu lorem malesuada egestas vel vel urna. Maecenas ac semper quam. Maecenas aliquet metus non interdum mattis. Proin consectetur molestie ligula. Aliquam sollicitudin pulvinar urna a pellentesque. Suspendisse ultrices, est mattis scelerisque porta, nisi nisi laoreet nisl, non condimentum quam ante a velit. Proin scelerisque justo augue, nec laoreet ligula egestas at. Etiam enim quam, ultrices non accumsan hendrerit, elementum vel ligula. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nam efficitur odio libero, in vestibulum arcu aliquam at. Cras non vehicula augue. Integer lobortis, est vitae aliquam facilisis, metus ligula aliquet eros, at porttitor sem tortor eget massa. Aliquam varius scelerisque neque sed gravida. Aenean eleifend lorem id ante elementum sollicitudin. Proin commodo massa a quam volutpat, mollis fermentum turpis efficitur.</text:p>
|
||||
<text:h text:style-name="P7">Notes: World</text:h>
|
||||
<text:p text:style-name="P7">Notes: World</text:p>
|
||||
<text:h text:style-name="Heading_20_1" text:outline-level="1">Ancient Europe</text:h>
|
||||
<text:p text:style-name="Text_20_Meta"><text:span text:style-name="T1">Tag:</text:span> Europe</text:p>
|
||||
<text:p text:style-name="Text_20_body">Vivamus sodales risus ac accumsan posuere. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nunc vel enim felis. Vestibulum dignissim massa nunc, a auctor magna eleifend et. Proin dignissim sodales erat vitae convallis. Aliquam id tellus dui. Curabitur sollicitudin scelerisque ex sit amet posuere. Nam rutrum felis id rhoncus feugiat. Duis sagittis quam quis purus efficitur, quis rutrum odio iaculis. Maecenas semper ante turpis, at vulputate mi consectetur non. Sed rutrum nibh turpis, quis rhoncus purus ornare quis. Vestibulum at rutrum mauris. Integer dolor nisi, tincidunt eget vehicula ac, ultricies at ligula.</text:p>
|
||||
|
||||
@@ -25,7 +25,7 @@ import zipfile
|
||||
from lxml import etree
|
||||
from shutil import copyfile
|
||||
|
||||
from tools import cmpFiles
|
||||
from tools import ODT_IGNORE, cmpFiles
|
||||
|
||||
from novelwriter.core.toodt import ToOdt, ODTParagraphStyle, ODTTextStyle, XMLParagraph, _mkTag
|
||||
from novelwriter.core.project import NWProject
|
||||
@@ -37,6 +37,7 @@ XML_NS = [
|
||||
' xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"',
|
||||
' xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"',
|
||||
' xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"',
|
||||
' xmlns:dc="http://purl.org/dc/elements/1.1/"'
|
||||
]
|
||||
|
||||
|
||||
@@ -304,7 +305,7 @@ def testCoreToOdt_Convert(mockGUI):
|
||||
assert theDoc.getErrors() == []
|
||||
assert xmlToText(theDoc._xText) == (
|
||||
'<office:text>'
|
||||
'<text:h text:style-name="Title">Title</text:h>'
|
||||
'<text:p text:style-name="Title">Title</text:p>'
|
||||
'</office:text>'
|
||||
)
|
||||
|
||||
@@ -615,6 +616,10 @@ def testCoreToOdt_SaveFlat(mockGUI, fncPath, tstPaths):
|
||||
"""Test the document save functions.
|
||||
"""
|
||||
theProject = NWProject(mockGUI)
|
||||
theProject.data.setAuthor("Jane Smith")
|
||||
theProject.data.setName("Test Project")
|
||||
theProject.data.setSaveCount(1234)
|
||||
theProject.data.setEditTime(3674096)
|
||||
|
||||
theDoc = ToOdt(theProject, isFlat=True)
|
||||
theDoc._isNovel = True
|
||||
@@ -641,7 +646,7 @@ def testCoreToOdt_SaveFlat(mockGUI, fncPath, tstPaths):
|
||||
assert flatFile.exists()
|
||||
|
||||
copyfile(flatFile, testFile)
|
||||
assert cmpFiles(testFile, compFile, [4, 5])
|
||||
assert cmpFiles(testFile, compFile, ignoreStart=ODT_IGNORE)
|
||||
|
||||
# END Test testCoreToOdt_SaveFlat
|
||||
|
||||
@@ -651,6 +656,10 @@ def testCoreToOdt_SaveFull(mockGUI, fncPath, tstPaths):
|
||||
"""Test the document save functions.
|
||||
"""
|
||||
theProject = NWProject(mockGUI)
|
||||
theProject.data.setAuthor("Jane Smith")
|
||||
theProject.data.setName("Test Project")
|
||||
theProject.data.setSaveCount(1234)
|
||||
theProject.data.setEditTime(3674096)
|
||||
|
||||
theDoc = ToOdt(theProject, isFlat=False)
|
||||
theDoc._isNovel = True
|
||||
@@ -719,7 +728,7 @@ def testCoreToOdt_SaveFull(mockGUI, fncPath, tstPaths):
|
||||
assert cmpFiles(maniFile, maniComp)
|
||||
assert cmpFiles(settFile, settComp)
|
||||
assert cmpFiles(contFile, contComp)
|
||||
assert cmpFiles(metaFile, metaComp, [4, 5])
|
||||
assert cmpFiles(metaFile, metaComp, ignoreStart=ODT_IGNORE)
|
||||
assert cmpFiles(stylFile, stylComp)
|
||||
|
||||
# END Test testCoreToOdt_SaveFull
|
||||
|
||||
@@ -469,6 +469,7 @@ def testCoreTree_ToCFile(monkeypatch, mockGUI, mockItems, tmpPath):
|
||||
assert theTree.writeToCFile() is False
|
||||
|
||||
theProject._storage._runtimePath = tmpPath
|
||||
(tmpPath / "content").mkdir()
|
||||
assert theTree.writeToCFile() is True
|
||||
|
||||
pathA = str(Path("content") / "c000000000001.nwd")
|
||||
|
||||
@@ -27,7 +27,7 @@ from tools import C, buildTestProject
|
||||
|
||||
from PyQt5.QtGui import QFocusEvent
|
||||
from PyQt5.QtCore import Qt, QEvent
|
||||
from PyQt5.QtWidgets import QToolTip
|
||||
from PyQt5.QtWidgets import QInputDialog, QToolTip
|
||||
|
||||
from novelwriter.enum import nwWidget, nwItemType
|
||||
from novelwriter.gui.noveltree import NovelTreeColumn
|
||||
@@ -82,6 +82,8 @@ def testGuiNovelTree_TreeItems(qtbot, monkeypatch, nwGUI, projPath, mockRnd):
|
||||
# Populate Tree
|
||||
# =============
|
||||
|
||||
novelView.setTreeFocus()
|
||||
|
||||
nwGUI.projStack.setCurrentIndex(nwGUI.idxNovelView)
|
||||
nwGUI.rebuildIndex()
|
||||
novelTree._populateTree(rootHandle=None)
|
||||
@@ -172,6 +174,11 @@ def testGuiNovelTree_TreeItems(qtbot, monkeypatch, nwGUI, projPath, mockRnd):
|
||||
spSize = nwGUI.splitMain.sizes()
|
||||
nwGUI.splitMain.setSizes([spSize[0] + 10, spSize[1] - 10])
|
||||
|
||||
# Resize the last column
|
||||
with monkeypatch.context() as mp:
|
||||
mp.setattr(QInputDialog, "getInt", lambda *a, **k: (40, True))
|
||||
novelBar._selectLastColumnSize()
|
||||
|
||||
# Item Meta
|
||||
# =========
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ import pytest
|
||||
from shutil import copyfile
|
||||
|
||||
from mock import causeException, causeOSError
|
||||
from tools import cmpFiles
|
||||
from tools import ODT_IGNORE, cmpFiles
|
||||
|
||||
from novelwriter.core.project import NWProject
|
||||
from novelwriter.mbuild.docbuild import NWBuildDocument
|
||||
@@ -85,7 +85,7 @@ def testMBuildDocBuild_OpenDocument(monkeypatch, mockGUI, prjLipsum, fncPath, ts
|
||||
assert error == []
|
||||
|
||||
copyfile(docFile, tstFile)
|
||||
assert cmpFiles(tstFile, cmpFile, ignoreStart="<meta:")
|
||||
assert cmpFiles(tstFile, cmpFile, ignoreStart=ODT_IGNORE)
|
||||
|
||||
# Check ODT Build
|
||||
# ===============
|
||||
|
||||
@@ -23,7 +23,7 @@ import pytest
|
||||
|
||||
from shutil import copyfile
|
||||
|
||||
from tools import cmpFiles, getGuiItem
|
||||
from tools import ODT_IGNORE, cmpFiles, getGuiItem
|
||||
|
||||
from PyQt5.QtCore import Qt
|
||||
from PyQt5.QtWidgets import QAction, QFileDialog
|
||||
@@ -103,7 +103,7 @@ def testToolBuild_Main(qtbot, monkeypatch, nwGUI, prjLipsum, tstPaths):
|
||||
testFile = tstPaths.outDir / "guiBuild_Tool_Step1_Lorem_Ipsum.fodt"
|
||||
compFile = tstPaths.refDir / "guiBuild_Tool_Step1_Lorem_Ipsum.fodt"
|
||||
copyfile(projFile, testFile)
|
||||
assert cmpFiles(testFile, compFile, [4, 5])
|
||||
assert cmpFiles(testFile, compFile, ignoreStart=ODT_IGNORE)
|
||||
|
||||
# Change Title Formats and Flip Switches
|
||||
nwBuild.fmtChapter.setText(r"Chapter %chw%: %title%")
|
||||
@@ -147,7 +147,7 @@ def testToolBuild_Main(qtbot, monkeypatch, nwGUI, prjLipsum, tstPaths):
|
||||
testFile = tstPaths.outDir / "guiBuild_Tool_Step2_Lorem_Ipsum.fodt"
|
||||
compFile = tstPaths.refDir / "guiBuild_Tool_Step2_Lorem_Ipsum.fodt"
|
||||
copyfile(projFile, testFile)
|
||||
assert cmpFiles(testFile, compFile, [4, 5])
|
||||
assert cmpFiles(testFile, compFile, ignoreStart=ODT_IGNORE)
|
||||
|
||||
# Replace Tabs with Spaces
|
||||
qtbot.mouseClick(nwBuild.replaceTabs, Qt.LeftButton)
|
||||
@@ -181,7 +181,7 @@ def testToolBuild_Main(qtbot, monkeypatch, nwGUI, prjLipsum, tstPaths):
|
||||
testFile = tstPaths.outDir / "guiBuild_Tool_Step3_Lorem_Ipsum.fodt"
|
||||
compFile = tstPaths.refDir / "guiBuild_Tool_Step3_Lorem_Ipsum.fodt"
|
||||
copyfile(projFile, testFile)
|
||||
assert cmpFiles(testFile, compFile, [4, 5])
|
||||
assert cmpFiles(testFile, compFile, ignoreStart=ODT_IGNORE)
|
||||
|
||||
# Putline Mode
|
||||
nwBuild.fmtChapter.setText(r"Chapter %chw%: %title%")
|
||||
|
||||
@@ -27,6 +27,7 @@ from pathlib import Path
|
||||
from PyQt5.QtWidgets import qApp
|
||||
|
||||
XML_IGNORE = ("<novelWriterXML", "<project")
|
||||
ODT_IGNORE = ("<meta:generator", "<meta:creation-date", "<dc:date")
|
||||
|
||||
|
||||
class C:
|
||||
|
||||
Reference in New Issue
Block a user