Merge branch 'dev' into doc_class

This commit is contained in:
Veronica K. B. Olsen
2021-05-02 17:14:15 +02:00
35 changed files with 859 additions and 256 deletions
+105
View File
@@ -0,0 +1,105 @@
{
"Synopsis": "Synopsis",
"Comment": "Kommentar",
"Notes": "Notizen",
"0": "Null",
"1": "Eins",
"2": "Zwei",
"3": "Drei",
"4": "Vier",
"5": "Fünf",
"6": "Sechs",
"7": "Sieben",
"8": "Acht",
"9": "Neun",
"10": "Zehn",
"11": "Elf",
"12": "Zwölf",
"13": "Dreizehen",
"14": "Vierzehn",
"15": "Fünfzehn",
"16": "Sechzehn",
"17": "Siebzehn",
"18": "Achtzehn",
"19": "Neunzehn",
"20": "Zwanzig",
"21": "Einundzwanzig",
"22": "Zweiundzwanzig",
"23": "Dreiundzwanzig",
"24": "Vierundzwanzig",
"25": "Fünfundzwanzig",
"26": "Sechsundzwanzig",
"27": "Siebenundzwanzig",
"28": "Achtundzwanzig",
"29": "Neunundzwanzig",
"30": "Dreißig",
"31": "Einunddreißig",
"32": "Zweiunddreißig",
"33": "Dreiunddreißig",
"34": "Vierunddreißig",
"35": "Fünfunddreißig",
"36": "Sechsunddreißig",
"37": "Siebenunddreißig",
"38": "Achtunddreißig",
"39": "Neununddreißig",
"40": "Vierzig",
"41": "Einundvierzig",
"42": "Zweiundvierzig",
"43": "Dreiundvierzig",
"44": "Vierundvierzig",
"45": "Fünfundvierzig",
"46": "Sechsundvierzig",
"47": "Siebenundvierzig",
"48": "Achtundvierzig",
"49": "Neunundvierzig",
"50": "Fünfzig",
"51": "Einundfünfzig",
"52": "Zweiundfünfzig",
"53": "Dreiundfünfzig",
"54": "Vierundfünfzig",
"55": "Fünfundfünfzig",
"56": "Sechsundfünfzig",
"57": "Siebenundfünfzig",
"58": "Achtundfünfzig",
"59": "Neunundfünfzig",
"60": "Sechzig",
"61": "Einundsechzig",
"62": "Zweiundsechzig",
"63": "Dreiundsechzig",
"64": "Vierundsechzig",
"65": "Fünfundsechzig",
"66": "Sechsundsechzig",
"67": "Siebenundsechzig",
"68": "Achtundsechzig",
"69": "Neunundsechzig",
"70": "Siebzig",
"71": "Einundsiebzig",
"72": "Zweiundsiebzig",
"73": "Dreiundsiebzig",
"74": "Vierundsiebzig",
"75": "Fünfundsiebzig",
"76": "Sechsundsiebzig",
"77": "Siebenundsiebzig",
"78": "Achtundsiebzig",
"79": "Neunundsiebzig",
"80": "Achtzig",
"81": "Einundachtzig",
"82": "Zweiundachtzig",
"83": "Dreiundachtzig",
"84": "Vierundachtzig",
"85": "Fünfundachtzig",
"86": "Sechsundachtzig",
"87": "Siebenundachtzig",
"88": "Achtundachtzig",
"89": "Neunundachtzig",
"90": "Neunzig",
"91": "Einundneunzig",
"92": "Zweiundneunzig",
"93": "Dreiundneunzig",
"94": "Vierundneunzig",
"95": "Fünfundneunzig",
"96": "Sechsundneunzig",
"97": "Siebenundneunzig",
"98": "Achtundneunzig",
"99": "Neunundneunzig"
}
+105
View File
@@ -0,0 +1,105 @@
{
"Synopsis": "Synopsis",
"Comment": "Comment",
"Notes": "Notes",
"0": "Zero",
"1": "One",
"2": "Two",
"3": "Three",
"4": "Four",
"5": "Five",
"6": "Six",
"7": "Seven",
"8": "Eight",
"9": "Nine",
"10": "Ten",
"11": "Eleven",
"12": "Twelve",
"13": "Thirteen",
"14": "Fourteen",
"15": "Fifteen",
"16": "Sixteen",
"17": "Seventeen",
"18": "Eighteen",
"19": "Nineteen",
"20": "Twenty",
"21": "Twenty-One",
"22": "Twenty-Two",
"23": "Twenty-Three",
"24": "Twenty-Four",
"25": "Twenty-Five",
"26": "Twenty-Six",
"27": "Twenty-Seven",
"28": "Twenty-Eight",
"29": "Twenty-Nine",
"30": "Thirty",
"31": "Thirty-One",
"32": "Thirty-Two",
"33": "Thirty-Three",
"34": "Thirty-Four",
"35": "Thirty-Five",
"36": "Thirty-Six",
"37": "Thirty-Seven",
"38": "Thirty-Eight",
"39": "Thirty-Nine",
"40": "Forty",
"41": "Forty-One",
"42": "Forty-Two",
"43": "Forty-Three",
"44": "Forty-Four",
"45": "Forty-Five",
"46": "Forty-Six",
"47": "Forty-Seven",
"48": "Forty-Eight",
"49": "Forty-Nine",
"50": "Fifty",
"51": "Fifty-One",
"52": "Fifty-Two",
"53": "Fifty-Three",
"54": "Fifty-Four",
"55": "Fifty-Five",
"56": "Fifty-Six",
"57": "Fifty-Seven",
"58": "Fifty-Eight",
"59": "Fifty-Nine",
"60": "Sixty",
"61": "Sixty-One",
"62": "Sixty-Two",
"63": "Sixty-Three",
"64": "Sixty-Four",
"65": "Sixty-Five",
"66": "Sixty-Six",
"67": "Sixty-Seven",
"68": "Sixty-Eight",
"69": "Sixty-Nine",
"70": "Seventy",
"71": "Seventy-One",
"72": "Seventy-Two",
"73": "Seventy-Three",
"74": "Seventy-Four",
"75": "Seventy-Five",
"76": "Seventy-Six",
"77": "Seventy-Seven",
"78": "Seventy-Eight",
"79": "Seventy-Nine",
"80": "Eighty",
"81": "Eighty-One",
"82": "Eighty-Two",
"83": "Eighty-Three",
"84": "Eighty-Four",
"85": "Eighty-Five",
"86": "Eighty-Six",
"87": "Eighty-Seven",
"88": "Eighty-Eight",
"89": "Eighty-Nine",
"90": "Ninety",
"91": "Ninety-One",
"92": "Ninety-Two",
"93": "Ninety-Three",
"94": "Ninety-Four",
"95": "Ninety-Five",
"96": "Ninety-Six",
"97": "Ninety-Seven",
"98": "Ninety-Eight",
"99": "Ninety-Nine"
}
+105
View File
@@ -0,0 +1,105 @@
{
"Synopsis": "Synopsis",
"Comment": "Commentaire",
"Notes": "Notes",
"0": "Zero",
"1": "Un",
"2": "Deux",
"3": "Trois",
"4": "Quatre",
"5": "Cinq",
"6": "Six",
"7": "Sept",
"8": "Huit",
"9": "Neuf",
"10": "Dix",
"11": "Onze",
"12": "Douze",
"13": "Treize",
"14": "Quatorze",
"15": "Quinze",
"16": "Seize",
"17": "Dix-sept",
"18": "Dix-huit",
"19": "Dix-neuf",
"20": "Vingt",
"21": "Vingt et un",
"22": "Vingt-deux",
"23": "Vingt-trois",
"24": "Vingt-quatre",
"25": "Vingt-cinq",
"26": "Vingt-six",
"27": "Vingt-sept",
"28": "Vingt-huit",
"29": "Vingt-neuf",
"30": "Trente",
"31": "Trente et un",
"32": "Trente-deux",
"33": "Trente-trois",
"34": "Trente-quatre",
"35": "Trente-cinq",
"36": "Trente-six",
"37": "Trente-sept",
"38": "Trente-huit",
"39": "Trente-neuf",
"40": "Quarante",
"41": "Quarante et un",
"42": "Quarante-deux",
"43": "Quarante-trois",
"44": "Quarante-quatre",
"45": "Quarante-cinq",
"46": "Quarante-six",
"47": "Quarante-sept",
"48": "Quarante-huit",
"49": "Quarante-neuf",
"50": "Cinquante",
"51": "Cinquante et un",
"52": "Cinquante-deux",
"53": "Cinquante-trois",
"54": "Cinquante-quatre",
"55": "Cinquante-cinq",
"56": "Cinquante-six",
"57": "Cinquante-sept",
"58": "Cinquante-huit",
"59": "Cinquante-neuf",
"60": "Soixante",
"61": "Soixante et un",
"62": "Soixante-deux",
"63": "Soixante-trois",
"64": "Soixante-quatre",
"65": "Soixante-cinq",
"66": "Soixante-six",
"67": "Soixante-sept",
"68": "Soixante-huit",
"69": "Soixante-neuf",
"70": "Soixante-dix",
"71": "Soixante et onze",
"72": "Soixante-douze",
"73": "Soixante-treize",
"74": "Soixante-quatorze",
"75": "Soixante-quinze",
"76": "Soixante-seize",
"77": "Soixante-dix-sept",
"78": "Soixante-dix-huit",
"79": "Soixante-dix-neuf",
"80": "Quatre-vingts",
"81": "Quatre-vingt-un",
"82": "Quatre-vingt-deux",
"83": "Quatre-vingt-trois",
"84": "Quatre-vingt-quatre",
"85": "Quatre-vingt-cinq",
"86": "Quatre-vingt-six",
"87": "Quatre-vingt-sept",
"88": "Quatre-vingt-huit",
"89": "Quatre-vingt-neuf",
"90": "Quatre-vingt-dix",
"91": "Quatre-vingt-onze",
"92": "Quatre-vingt-douze",
"93": "Quatre-vingt-treize",
"94": "Quatre-vingt-quatorze",
"95": "Quatre-vingt-quinze",
"96": "Quatre-vingt-seize",
"97": "Quatre-vingt-dix-sept",
"98": "Quatre-vingt-dix-huit",
"99": "Quatre-vingt-dix-neuf"
}
+105
View File
@@ -0,0 +1,105 @@
{
"Synopsis": "Sammendrag",
"Comment": "Kommentar",
"Notes": "Notat",
"0": "null",
"1": "én",
"2": "to",
"3": "tre",
"4": "fire",
"5": "fem",
"6": "seks",
"7": "sju",
"8": "åtte",
"9": "ni",
"10": "ti",
"11": "elleve",
"12": "tolv",
"13": "tretten",
"14": "fjorten",
"15": "femten",
"16": "seksten",
"17": "sytten",
"18": "atten",
"19": "nitten",
"20": "tjue",
"21": "tjueén",
"22": "tjueto",
"23": "tjuetre",
"24": "tjuefire",
"25": "tjuefem",
"26": "tjueseks",
"27": "tjuesju",
"28": "tjueåtte",
"29": "tjueni",
"30": "tretti",
"31": "trettién",
"32": "trettito",
"33": "trettitre",
"34": "trettifire",
"35": "trettifem",
"36": "trettiseks",
"37": "trettisju",
"38": "trettiåtte",
"39": "trettini",
"40": "førti",
"41": "førtién",
"42": "førtito",
"43": "førtitre",
"44": "førtifire",
"45": "førtifem",
"46": "førtiseks",
"47": "førtisju",
"48": "førtiåtte",
"49": "førtini",
"50": "femti",
"51": "femtién",
"52": "femtito",
"53": "femtitre",
"54": "femtifire",
"55": "femtifem",
"56": "femtiseks",
"57": "femtisju",
"58": "femtiåtte",
"59": "femtini",
"60": "seksti",
"61": "sekstién",
"62": "sekstito",
"63": "sekstitre",
"64": "sekstifire",
"65": "sekstifem",
"66": "sekstiseks",
"67": "sekstisju",
"68": "sekstiåtte",
"69": "sekstini",
"70": "sytti",
"71": "syttién",
"72": "syttito",
"73": "syttitre",
"74": "syttifire",
"75": "syttifem",
"76": "syttiseks",
"77": "syttisju",
"78": "syttiåtte",
"79": "syttini",
"80": "åtti",
"81": "åttién",
"82": "åttito",
"83": "åttitre",
"84": "åttifire",
"85": "åttifem",
"86": "åttiseks",
"87": "åttisju",
"88": "åttiåtte",
"89": "åttini",
"90": "nitti",
"91": "nittién",
"92": "nittito",
"93": "nittitre",
"94": "nittifire",
"95": "nittifem",
"96": "nittiseks",
"97": "nittisju",
"98": "nittiåtte",
"99": "nittini"
}
+105
View File
@@ -0,0 +1,105 @@
{
"Synopsis": "Samandrag",
"Comment": "Kommentar",
"Notes": "Notat",
"0": "null",
"1": "ein",
"2": "to",
"3": "tre",
"4": "fire",
"5": "fem",
"6": "seks",
"7": "sju",
"8": "åtte",
"9": "ni",
"10": "ti",
"11": "elleve",
"12": "tolv",
"13": "tretten",
"14": "fjorten",
"15": "femten",
"16": "seksten",
"17": "sytten",
"18": "atten",
"19": "nitten",
"20": "tjue",
"21": "tjueein",
"22": "tjueto",
"23": "tjuetre",
"24": "tjuefire",
"25": "tjuefem",
"26": "tjueseks",
"27": "tjuesju",
"28": "tjueåtte",
"29": "tjueni",
"30": "tretti",
"31": "trettiein",
"32": "trettito",
"33": "trettitre",
"34": "trettifire",
"35": "trettifem",
"36": "trettiseks",
"37": "trettisju",
"38": "trettiåtte",
"39": "trettini",
"40": "førti",
"41": "førtiein",
"42": "førtito",
"43": "førtitre",
"44": "førtifire",
"45": "førtifem",
"46": "førtiseks",
"47": "førtisju",
"48": "førtiåtte",
"49": "førtini",
"50": "femti",
"51": "femtiein",
"52": "femtito",
"53": "femtitre",
"54": "femtifire",
"55": "femtifem",
"56": "femtiseks",
"57": "femtisju",
"58": "femtiåtte",
"59": "femtini",
"60": "seksti",
"61": "sekstiein",
"62": "sekstito",
"63": "sekstitre",
"64": "sekstifire",
"65": "sekstifem",
"66": "sekstiseks",
"67": "sekstisju",
"68": "sekstiåtte",
"69": "sekstini",
"70": "sytti",
"71": "syttiein",
"72": "syttito",
"73": "syttitre",
"74": "syttifire",
"75": "syttifem",
"76": "syttiseks",
"77": "syttisju",
"78": "syttiåtte",
"79": "syttini",
"80": "åtti",
"81": "åttiein",
"82": "åttito",
"83": "åttitre",
"84": "åttifire",
"85": "åttifem",
"86": "åttiseks",
"87": "åttisju",
"88": "åttiåtte",
"89": "åttini",
"90": "nitti",
"91": "nittiein",
"92": "nittito",
"93": "nittitre",
"94": "nittifire",
"95": "nittifem",
"96": "nittiseks",
"97": "nittisju",
"98": "nittiåtte",
"99": "nittini"
}
+105
View File
@@ -0,0 +1,105 @@
{
"Synopsis": "Sinopse",
"Comment": "Comentários",
"Notes": "Notas",
"0": "Zero",
"1": "Um",
"2": "Dois",
"3": "Três",
"4": "Quatro",
"5": "Cinco",
"6": "Seis",
"7": "Sete",
"8": "Oito",
"9": "Nove",
"10": "Dez",
"11": "Onze",
"12": "Doze",
"13": "Treze",
"14": "Quatorze",
"15": "Quinze",
"16": "Dezesseis",
"17": "Dezesete",
"18": "Dezoito",
"19": "Dezenove",
"20": "Vinte",
"21": "Vinte e Um",
"22": "Vinte e Dois",
"23": "Vinte e Três",
"24": "Vinte e Quatro",
"25": "Vinte e Cinco",
"26": "Vinte e Seis",
"27": "Vinte e Sete",
"28": "Vinte e Oito",
"29": "Vinte e Nove",
"30": "Trinta",
"31": "Trinta e Um",
"32": "Trinta e Dois",
"33": "Trinta e Três",
"34": "Trinta e Quatro",
"35": "Trinta e Cinco",
"36": "Trinta e Seis",
"37": "Trinta e Sete",
"38": "Trinta e Oito",
"39": "Trinta e Nove",
"40": "Quarenta",
"41": "Quarenta e Um",
"42": "Quarenta e Dois",
"43": "Quarenta e Três",
"44": "Quarenta e Quatro",
"45": "Quarenta e Cinco",
"46": "Quarenta e Seis",
"47": "Quarenta e Sete",
"48": "Quarenta e Oito",
"49": "Quarenta e Nove",
"50": "Cinquenta",
"51": "Cinquenta e Um",
"52": "Cinquenta e Dois",
"53": "Cinquenta e Três",
"54": "Cinquenta e Quatro",
"55": "Cinquenta e Cinco",
"56": "Cinquenta e Seis",
"57": "Cinquenta e Sete",
"58": "Cinquenta e Oito",
"59": "Cinquenta e Nove",
"60": "Sessenta",
"61": "Sessenta e Um",
"62": "Sessenta e Dois",
"63": "Sessenta e Três",
"64": "Sessenta e Quatro",
"65": "Sessenta e Cinco",
"66": "Sessenta e Seis",
"67": "Sessenta e Sete",
"68": "Sessenta e Oito",
"69": "Sessenta e Nove",
"70": "Setenta",
"71": "Setenta e Um",
"72": "Setenta e Dois",
"73": "Setenta e Três",
"74": "Setenta e Quatro",
"75": "Setenta e Cinco",
"76": "Setenta e Seis",
"77": "Setenta e Sete",
"78": "Setenta e Oito",
"79": "Setenta e Nove",
"80": "Oitenta",
"81": "Oitenta e Um",
"82": "Oitenta e Dois",
"83": "Oitenta e Três",
"84": "Oitenta e Quatro",
"85": "Oitenta e Cinco",
"86": "Oitenta e Seis",
"87": "Oitenta e Sete",
"88": "Oitenta e Oito",
"89": "Oitenta e Nove",
"90": "Noventa",
"91": "Noventa e Um",
"92": "Noventa e Dois",
"93": "Noventa e Três",
"94": "Noventa e Quatro",
"95": "Noventa e Cinco",
"96": "Noventa e Seis",
"97": "Noventa e Sete",
"98": "Noventa e Oito",
"99": "Noventa e Nove"
}
+21 -7
View File
@@ -2,13 +2,27 @@
<html>
<body>
<h2>Release Notes for 1.3 RC 1</h2>
<p><i>Released on 18 April 2021</i></p>
<p>This is a release candidate of 1.3. The primary feature of release 1.3 is the addition of
internationalisation (i18n) of novelWriter. The release introduces support for Portuguese, French,
and Norwegian in addition to the default English.</p>
<p>There have been no major changes since the release of 1.3 Beta 1, but the bugfixes and
improvements from version 1.2.3 have been included.</p>
<h2>Release Notes for 1.3</h2>
<p><i>Released on 2 May 2021</i></p>
<p>The main feature of the 1.3 release is internationalisation. The release introduces support for
Portuguese, French, and Norwegian for the main GUI, in addition to the default English. The
settings for choosing the GUI language can be found in the main Preferences.</p>
<p>The implementation is such that the projects themselves can use a different language than the
one selected for the GUI. To allow for better support for multiple language projects, the Build
Novel Project tool has the added option to select the language of the injected text into exported
documents. In particularly for the number words that can be added for chapter headers. Available
languages here are the same as mentioned above for the main GUI, plus German.</p>
<p>Settings have also been added in Preferences to allow for automatic injection of spaces or
non-breaking spaces in front of, or behind, certain characters. These are features generally
available in text editors for French, but the implementation in novelWriter simply makes them a
free text box where you can list all characters or symbols where you want a space added
automatically.</p>
<p>The translation files for this release have been provided by Bruno Meneguello for the Portuguese
translation, by Jan Lüdke (jyhelle) for the French translation, by Veronica Berglyd Olsen for the
Norwegian translation as well as the minor modifications for US English, and Marian Lückhof
provided the translation file for chapter numbers in German.</p>
<p>The work to rewrite novelWriter to allow for internationalisation was done by Bruno Meneguello
and Veronica Berglyd Olsen.</p>
<p><i>See also the <a href="https://github.com/vkbo/novelWriter/releases">Releases</a> page.</i></p>
+1 -1
View File
@@ -307,7 +307,7 @@ class Config:
self.appIcon = os.path.join(self.iconPath, "novelwriter.svg")
# Internationalisation
self.nwLangPath = os.path.join(self.appRoot, "i18n")
self.nwLangPath = os.path.join(self.assetPath, "i18n")
logger.verbose("App path: %s" % self.appPath)
logger.verbose("Last path: %s" % self.lastPath)
+1 -1
View File
@@ -298,7 +298,7 @@ class ToOdt(Tokenizer):
# Meta Data
xMeta = etree.SubElement(self._xMeta, _mkTag("meta", "creation-date"))
xMeta.text = datetime.now().isoformat()
xMeta.text = datetime.now().strftime("%Y-%m-%dT%H:%M:%S")
xMeta = etree.SubElement(self._xMeta, _mkTag("meta", "generator"))
xMeta.text = f"novelWriter/{nw.__version__}"
+18 -19
View File
@@ -848,26 +848,21 @@ class GuiBuildNovel(QDialog):
# Generate File Name
# ==================
if fileExt:
cleanName = makeFileNameSafe(self.theProject.projName)
fileName = "%s.%s" % (cleanName, fileExt)
saveDir = self.mainConf.lastPath
if not os.path.isdir(saveDir):
saveDir = os.path.expanduser("~")
cleanName = makeFileNameSafe(self.theProject.projName)
fileName = "%s.%s" % (cleanName, fileExt)
saveDir = self.mainConf.lastPath
savePath = os.path.join(saveDir, fileName)
if not os.path.isdir(saveDir):
saveDir = self.mainConf.homePath
savePath, _ = QFileDialog.getSaveFileName(
self, self.tr("Save Document As"), savePath
)
if not savePath:
return False
self.mainConf.setLastPath(savePath)
else:
savePath = os.path.join(saveDir, fileName)
savePath, _ = QFileDialog.getSaveFileName(
self, self.tr("Save Document As"), savePath
)
if not savePath:
return False
self.mainConf.setLastPath(savePath)
# Build and Write
# ===============
@@ -995,9 +990,13 @@ class GuiBuildNovel(QDialog):
errMsg - str(e)
else:
errMsg = self.tr("Unknown format")
# If the if statements above and here match, it should not
# be possible to reach this else statement.
return False # pragma: no cover
# Report to User
# ==============
# Report to user
if wSuccess:
self.theParent.makeAlert(
"%s<br>%s" % (