Merge branch 'patch' into release_2.0.5

This commit is contained in:
Veronica Berglyd Olsen
2023-02-12 16:04:10 +01:00
25 changed files with 5330 additions and 521 deletions
+105
View File
@@ -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"
}
+105
View File
@@ -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": "Девяносто девять"
}
+1
View File
@@ -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>
+33 -9
View File
@@ -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)