Compare commits
24 Commits
96684996bc
...
v1.41_Win6
| Author | SHA1 | Date | |
|---|---|---|---|
| e43a757d8c | |||
| c7028163fb | |||
| a6a2fde875 | |||
| 6332db4b1f | |||
| 535bb9d4e9 | |||
| ce5495fce4 | |||
| 9d3f5c831c | |||
| 265d2ab3b4 | |||
| f7b77db942 | |||
| ac168d1e10 | |||
| 878f526fde | |||
| 4351889aae | |||
| 38461fbe33 | |||
| f1b4fa0ab3 | |||
| b08b7912ef | |||
| 314a5de4dd | |||
| 1c7e3dd29b | |||
| 3643778d53 | |||
| fbeeba2685 | |||
| d0196ff10c | |||
| b35a471b75 | |||
| 525b0b60ae | |||
| 05fdd158c9 | |||
| 4df965745b |
@@ -5,6 +5,5 @@ encoding//bananaSPLIT/UserInterface/compiledUI/avanzatetitolo.py=utf-8
|
||||
encoding//bananaSPLIT/UserInterface/compiledUI/avanzatetitolo2.py=utf-8
|
||||
encoding//bananaSPLIT/UserInterface/compiledUI/avanzatetitolo3.py=utf-8
|
||||
encoding//bananaSPLIT/UserInterface/compiledUI/mainwindow.py=utf-8
|
||||
encoding//bananaSPLIT/UserInterface/compiledUI/resources_rc.py=utf-8
|
||||
encoding//bananaSPLIT/UserInterface/compiledUI/selezout.py=utf-8
|
||||
encoding//bananaSPLIT/UserInterface/compiledUI/titolow.py=utf-8
|
||||
|
||||
Binary file not shown.
@@ -1,11 +1,13 @@
|
||||
{
|
||||
"version": "v1.3b",
|
||||
"version": "v1.41",
|
||||
"paths": {
|
||||
"lastUsed": "defaults.json",
|
||||
"configurationPath": "./conf/",
|
||||
"INworkPath": "C://",
|
||||
"OUTworkPath": "C://",
|
||||
"fileList": []
|
||||
"fileList": [
|
||||
"bdlog.txt"
|
||||
]
|
||||
},
|
||||
"docStruct": {
|
||||
"fileVersNew": false,
|
||||
@@ -36,6 +38,7 @@
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"uiLang": "en",
|
||||
"winW": 800,
|
||||
"winH": 700,
|
||||
"encoding": "windows-1252",
|
||||
|
||||
67
WinBuild/conf/linux.json
Normal file
67
WinBuild/conf/linux.json
Normal file
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"version": "v1.3",
|
||||
"paths": {
|
||||
"lastUsed": "linux.json",
|
||||
"configurationPath": "./conf/",
|
||||
"INworkPath": "/home/",
|
||||
"OUTworkPath": "/home/",
|
||||
"fileList": []
|
||||
},
|
||||
"docStruct": {
|
||||
"fileVersNew": false,
|
||||
"language": "English",
|
||||
"languageIdx": 1,
|
||||
"docSep": "\\s*Copyright [(0-9)]+",
|
||||
"beginOfDocument": "\\s*Body",
|
||||
"endOfDocument": "\\s*End of Document",
|
||||
"dateFormat": "{month} {day:d}, {year:d}{}",
|
||||
"outPrefix": "",
|
||||
"outSuffix": "",
|
||||
"outExt": ".txt",
|
||||
"outDateType": "jpn",
|
||||
"outNameFormat": "",
|
||||
"outDate": true,
|
||||
"outTitle": true,
|
||||
"outNumber": true,
|
||||
"numberPos": 1,
|
||||
"datePos": 2,
|
||||
"titlePos": 3,
|
||||
"maxTitleLen": 16,
|
||||
"outNameSep": "-",
|
||||
"customSep": "=",
|
||||
"dateFormats": {
|
||||
"jpn": "{year:04d}{month:02d}{day:02d}",
|
||||
"it": "{day:02d}{month:02d}{year:04d}",
|
||||
"usa": "{month:02d}{year:04d}{day:02d}"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"winW": 800,
|
||||
"winH": 700,
|
||||
"encoding": "windows-1252",
|
||||
"monthPosition": 0,
|
||||
"getNewsPaperName": true,
|
||||
"nameNotFoundStr": "ND",
|
||||
"includeTitle": true,
|
||||
"removeDuplicates": true,
|
||||
"showSkipped": false,
|
||||
"showRemovedDuplicates": false,
|
||||
"loadTXT": true,
|
||||
"loadDOCX": false,
|
||||
"removeOldFiles": true,
|
||||
"saveSeparateFiles": true,
|
||||
"saveBodyFile": true,
|
||||
"saveBodyNumber": true,
|
||||
"delLF": false,
|
||||
"delWordBreak": true,
|
||||
"delChars": [
|
||||
"'",
|
||||
"@",
|
||||
"#",
|
||||
"$",
|
||||
"%",
|
||||
"^",
|
||||
"&"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,33 +1,33 @@
|
||||
# -*- mode: python ; coding: utf-8 -*-
|
||||
|
||||
block_cipher = None
|
||||
|
||||
|
||||
a = Analysis(['guimain.py'],
|
||||
pathex=['./libbananasplit', './UserInterface/CompiledUI', 'D:\\Emanuele\\Documenti\\workspace\\bananaSPLIT\\bananaSPLIT'],
|
||||
binaries=[],
|
||||
datas=[('C:\\Users\\Emanuele Trabattoni\\AppData\\Roaming\\Python\\Python37\\site-packages\\text_unidecode\\data.bin', '.\\text_unidecode')],
|
||||
hiddenimports=[],
|
||||
hookspath=[],
|
||||
runtime_hooks=[],
|
||||
excludes=[],
|
||||
win_no_prefer_redirects=False,
|
||||
win_private_assemblies=False,
|
||||
cipher=block_cipher,
|
||||
noarchive=False)
|
||||
pyz = PYZ(a.pure, a.zipped_data,
|
||||
cipher=block_cipher)
|
||||
exe = EXE(pyz,
|
||||
a.scripts,
|
||||
a.binaries,
|
||||
a.zipfiles,
|
||||
a.datas,
|
||||
[],
|
||||
name='bananaSPLIT.exe',
|
||||
debug=False,
|
||||
bootloader_ignore_signals=False,
|
||||
strip=False,
|
||||
upx=True,
|
||||
upx_exclude=[],
|
||||
runtime_tmpdir=None,
|
||||
console=True , icon='bananasplit.ico')
|
||||
# -*- mode: python ; coding: utf-8 -*-
|
||||
|
||||
block_cipher = None
|
||||
|
||||
|
||||
a = Analysis(['guimain.py'],
|
||||
pathex=['./libbananasplit', './UserInterface/compiledUI', 'D:\\Emanuele\\Documenti\\workspace\\bananaSPLIT\\bananaSPLIT'],
|
||||
binaries=[],
|
||||
datas=[('C:\\Users\\Emanuele Trabattoni\\AppData\\Roaming\\Python\\Python37\\site-packages\\text_unidecode\\data.bin', '.\\text_unidecode')],
|
||||
hiddenimports=[],
|
||||
hookspath=[],
|
||||
runtime_hooks=[],
|
||||
excludes=[],
|
||||
win_no_prefer_redirects=False,
|
||||
win_private_assemblies=False,
|
||||
cipher=block_cipher,
|
||||
noarchive=False)
|
||||
pyz = PYZ(a.pure, a.zipped_data,
|
||||
cipher=block_cipher)
|
||||
exe = EXE(pyz,
|
||||
a.scripts,
|
||||
a.binaries,
|
||||
a.zipfiles,
|
||||
a.datas,
|
||||
[],
|
||||
name='SPEx.exe',
|
||||
debug=False,
|
||||
bootloader_ignore_signals=False,
|
||||
strip=False,
|
||||
upx=True,
|
||||
upx_exclude=[],
|
||||
runtime_tmpdir=None,
|
||||
console=False , icon='logo.ico')
|
||||
@@ -41,7 +41,7 @@
|
||||
<property name="modal">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QLabel" name="label">
|
||||
<widget class="QLabel" name="lbl_ico">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
@@ -69,7 +69,7 @@
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<widget class="QLabel" name="lbl_info">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>150</x>
|
||||
@@ -82,15 +82,15 @@
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7pt; font-weight:400; font-style:normal;">
|
||||
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:20pt; font-weight:600;">About SPEx<br /></span><span style=" font-size:12pt;">Versione {ver}</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">SPEx (Split Parse &amp; Extract) e' un tool, utile ai linguisti che devono costruire un corpus, che ha come funzione principale dividere e ripulire da elementi non necessari raccolte di &quot;articoli&quot; scaricati da database online quali </span><span style=" font-size:12pt; font-style:italic;">LexisNexis</span><span style=" font-size:12pt;">.</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Pui tranquillamente suggerire SPEx ad un tuo collega, ci fa molto piacere! Ricordati solo di mandarci (o farci mandare) una mail con scopo e impressioni di utilizzo: questo ci aiuta a tenere traccia di quanti ricercatori stanno usando SPEx e pensare a sviluppi futuri di questo tool. </span></p>
|
||||
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">SPEx non e' soggetto ad alcun tipo di licenza e viene distribuito senza alcuna garanzia.<br />Essendo un progetto &quot;del tempo libero&quot;, bug e proposte di espansione verranno sicuramente presi in considerazione ma non possiamo dirvi nulla riguardo alle tempistiche.</span></p>
|
||||
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Contatti:</span><br /><span style=" font-size:10pt;">12parsec.software@gmail.com</span></p>
|
||||
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Download:<br /></span><a href="https://drive.google.com/open?id=10zUm7uHk9st36PVotMwh9wqOeXU3xrr8"><span style=" text-decoration: underline; color:#0000ff;">https://drive.google.com/open?id=10zUm7uHk9st36PVotMwh9wqOeXU3xrr8</span></a></p></body></html></string>
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:400; font-style:normal;">
|
||||
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:20pt; font-weight:600;">About SPEx<br /></span><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Versione {ver}</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:7pt;"><br /></span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">SPEx (Split Parse &amp; Extract) e' un tool utile per gli specialisti di linguistica dei corpora che intendono rifinire il loro corpus, eliminando tutti gli elementi non </span><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">necessari e dividendo in file singoli le raccolte di</span><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;"> &quot;articoli&quot; scaricate da database online quali </span><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt; font-style:italic;">Lexis Uni</span><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">.</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Puoi tranquillamente suggerire SPEx ad un tuo collega: ci fa molto piacere! Ricordati solo di mandarci una mail con scopo e impressioni di utilizzo: questo ci aiuta a tenere traccia di quanti ricercatori stanno usando SPEx e pensare a sviluppi futuri di questo tool. </span></p>
|
||||
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:7pt;"><br /></span></p>
|
||||
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt;">SPEx non e' soggetto ad alcun tipo di licenza e viene distribuito senza alcuna garanzia.<br />Essendo un progetto &quot;del tempo libero&quot;, bug e proposte di espansione verranno sicuramente presi in considerazione, anche se le tempistiche potrebbero variare.</span></p>
|
||||
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Contatti:</span><span style=" font-family:'MS Shell Dlg 2'; font-size:7pt;"><br /></span><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt;">12parsec.software@gmail.com</span></p>
|
||||
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Download:<br /></span><a href="https://drive.google.com/open?id=10zUm7uHk9st36PVotMwh9wqOeXU3xrr8"><span style=" font-family:'MS Shell Dlg 2'; font-size:7pt; text-decoration: underline; color:#0000ff;">https://drive.google.com/open?id=10zUm7uHk9st36PVotMwh9wqOeXU3xrr8</span></a></p></body></html></string>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>Qt::RichText</enum>
|
||||
|
||||
@@ -25,23 +25,23 @@ class Ui_about(object):
|
||||
icon.addPixmap(QtGui.QPixmap(":/ico/icons/icons8-info-80.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||
about.setWindowIcon(icon)
|
||||
about.setModal(True)
|
||||
self.label = QtWidgets.QLabel(about)
|
||||
self.label.setGeometry(QtCore.QRect(10, 10, 128, 128))
|
||||
self.lbl_ico = QtWidgets.QLabel(about)
|
||||
self.lbl_ico.setGeometry(QtCore.QRect(10, 10, 128, 128))
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
|
||||
self.label.setSizePolicy(sizePolicy)
|
||||
self.label.setFrameShape(QtWidgets.QFrame.NoFrame)
|
||||
self.label.setText("")
|
||||
self.label.setPixmap(QtGui.QPixmap(":/ico/icons/logo.png"))
|
||||
self.label.setScaledContents(True)
|
||||
self.label.setObjectName("label")
|
||||
self.label_2 = QtWidgets.QLabel(about)
|
||||
self.label_2.setGeometry(QtCore.QRect(150, 10, 601, 621))
|
||||
self.label_2.setTextFormat(QtCore.Qt.RichText)
|
||||
self.label_2.setWordWrap(True)
|
||||
self.label_2.setObjectName("label_2")
|
||||
sizePolicy.setHeightForWidth(self.lbl_ico.sizePolicy().hasHeightForWidth())
|
||||
self.lbl_ico.setSizePolicy(sizePolicy)
|
||||
self.lbl_ico.setFrameShape(QtWidgets.QFrame.NoFrame)
|
||||
self.lbl_ico.setText("")
|
||||
self.lbl_ico.setPixmap(QtGui.QPixmap(":/ico/icons/logo.png"))
|
||||
self.lbl_ico.setScaledContents(True)
|
||||
self.lbl_ico.setObjectName("lbl_ico")
|
||||
self.lbl_info = QtWidgets.QLabel(about)
|
||||
self.lbl_info.setGeometry(QtCore.QRect(150, 10, 601, 621))
|
||||
self.lbl_info.setTextFormat(QtCore.Qt.RichText)
|
||||
self.lbl_info.setWordWrap(True)
|
||||
self.lbl_info.setObjectName("lbl_info")
|
||||
|
||||
self.retranslateUi(about)
|
||||
QtCore.QMetaObject.connectSlotsByName(about)
|
||||
@@ -49,18 +49,18 @@ class Ui_about(object):
|
||||
def retranslateUi(self, about):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
about.setWindowTitle(_translate("about", "About SPEx"))
|
||||
self.label_2.setText(_translate("about", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
|
||||
self.lbl_info.setText(_translate("about", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
|
||||
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
|
||||
"p, li { white-space: pre-wrap; }\n"
|
||||
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:7pt; font-weight:400; font-style:normal;\">\n"
|
||||
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:20pt; font-weight:600;\">About SPEx<br /></span><span style=\" font-size:12pt;\">Versione {ver}</span></p>\n"
|
||||
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n"
|
||||
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:12pt;\">SPEx (Split Parse & Extract) e\' un tool, utile ai linguisti che devono costruire un corpus, che ha come funzione principale dividere e ripulire da elementi non necessari raccolte di "articoli" scaricati da database online quali </span><span style=\" font-size:12pt; font-style:italic;\">LexisNexis</span><span style=\" font-size:12pt;\">.</span></p>\n"
|
||||
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:12pt;\">Pui tranquillamente suggerire SPEx ad un tuo collega, ci fa molto piacere! Ricordati solo di mandarci (o farci mandare) una mail con scopo e impressioni di utilizzo: questo ci aiuta a tenere traccia di quanti ricercatori stanno usando SPEx e pensare a sviluppi futuri di questo tool. </span></p>\n"
|
||||
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n"
|
||||
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:10pt;\">SPEx non e\' soggetto ad alcun tipo di licenza e viene distribuito senza alcuna garanzia.<br />Essendo un progetto "del tempo libero", bug e proposte di espansione verranno sicuramente presi in considerazione ma non possiamo dirvi nulla riguardo alle tempistiche.</span></p>\n"
|
||||
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:12pt;\">Contatti:</span><br /><span style=\" font-size:10pt;\">12parsec.software@gmail.com</span></p>\n"
|
||||
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:12pt;\">Download:<br /></span><a href=\"https://drive.google.com/open?id=10zUm7uHk9st36PVotMwh9wqOeXU3xrr8\"><span style=\" text-decoration: underline; color:#0000ff;\">https://drive.google.com/open?id=10zUm7uHk9st36PVotMwh9wqOeXU3xrr8</span></a></p></body></html>"))
|
||||
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8pt; font-weight:400; font-style:normal;\">\n"
|
||||
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:20pt; font-weight:600;\">About SPEx<br /></span><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:12pt;\">Versione {ver}</span></p>\n"
|
||||
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7pt;\"><br /></span></p>\n"
|
||||
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:12pt;\">SPEx (Split Parse & Extract) e\' un tool utile per gli specialisti di linguistica dei corpora che intendono rifinire il loro corpus, eliminando tutti gli elementi non </span><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:12pt;\">necessari e dividendo in file singoli le raccolte di</span><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:12pt;\"> "articoli" scaricate da database online quali </span><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:12pt; font-style:italic;\">Lexis Uni</span><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:12pt;\">.</span></p>\n"
|
||||
"<p style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:12pt;\">Puoi tranquillamente suggerire SPEx ad un tuo collega: ci fa molto piacere! Ricordati solo di mandarci una mail con scopo e impressioni di utilizzo: questo ci aiuta a tenere traccia di quanti ricercatori stanno usando SPEx e pensare a sviluppi futuri di questo tool. </span></p>\n"
|
||||
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7pt;\"><br /></span></p>\n"
|
||||
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:10pt;\">SPEx non e\' soggetto ad alcun tipo di licenza e viene distribuito senza alcuna garanzia.<br />Essendo un progetto "del tempo libero", bug e proposte di espansione verranno sicuramente presi in considerazione, anche se le tempistiche potrebbero variare.</span></p>\n"
|
||||
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:12pt;\">Contatti:</span><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7pt;\"><br /></span><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:10pt;\">12parsec.software@gmail.com</span></p>\n"
|
||||
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:12pt;\">Download:<br /></span><a href=\"https://drive.google.com/open?id=10zUm7uHk9st36PVotMwh9wqOeXU3xrr8\"><span style=\" font-family:\'MS Shell Dlg 2\'; font-size:7pt; text-decoration: underline; color:#0000ff;\">https://drive.google.com/open?id=10zUm7uHk9st36PVotMwh9wqOeXU3xrr8</span></a></p></body></html>"))
|
||||
|
||||
|
||||
import resources_rc
|
||||
|
||||
@@ -242,7 +242,7 @@ class Ui_mainwin(object):
|
||||
self.actionOpzioni = QtWidgets.QAction(mainwin)
|
||||
self.actionOpzioni.setObjectName("actionOpzioni")
|
||||
self.actionLingua = QtWidgets.QAction(mainwin)
|
||||
self.actionLingua.setEnabled(False)
|
||||
self.actionLingua.setEnabled(True)
|
||||
icon6 = QtGui.QIcon()
|
||||
icon6.addPixmap(QtGui.QPixmap(":/ico/icons/icons8-globe-earth-80.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||
self.actionLingua.setIcon(icon6)
|
||||
@@ -278,7 +278,7 @@ class Ui_mainwin(object):
|
||||
|
||||
def retranslateUi(self, mainwin):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
mainwin.setWindowTitle(_translate("mainwin", "bananaSPLIT"))
|
||||
mainwin.setWindowTitle(_translate("mainwin", "12parsec - SPEx"))
|
||||
self.label_4.setText(_translate("mainwin", "Finestra dei messaggi"))
|
||||
self.label_3.setText(_translate("mainwin", "Preset corrente: "))
|
||||
self.lbl_preset.setText(_translate("mainwin", "..."))
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -318,7 +318,7 @@ class Ui_titolo(object):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
titolo.setWindowTitle(_translate("titolo", "Nomi file di Uscita"))
|
||||
self.lbl_ncarat.setText(_translate("titolo", "Numero di caratteri"))
|
||||
self.btn_avanzate.setText(_translate("titolo", "Avanzate Titolo"))
|
||||
self.btn_avanzate.setText(_translate("titolo", "Opzioni Avanzate (Titolo)"))
|
||||
self.btn_indietro.setText(_translate("titolo", "Indietro"))
|
||||
self.btn_avanti.setText(_translate("titolo", "Avanti"))
|
||||
self.rad_datajpn.setText(_translate("titolo", "YYYY MM DD, es. 2000 12 31 (jpn)"))
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>bananaSPLIT</string>
|
||||
<string>12parsec - SPEx</string>
|
||||
</property>
|
||||
<property name="windowIcon">
|
||||
<iconset resource="resources/resources.qrc">
|
||||
@@ -485,7 +485,7 @@ p, li { white-space: pre-wrap; }
|
||||
</action>
|
||||
<action name="actionLingua">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resources/resources.qrc">
|
||||
|
||||
@@ -18,6 +18,14 @@
|
||||
<file>icons/logo4.png</file>
|
||||
</qresource>
|
||||
<qresource prefix="tr">
|
||||
<file>translations/about_en.qm</file>
|
||||
<file>translations/advopt_en.qm</file>
|
||||
<file>translations/avanzatetitolo3_en.qm</file>
|
||||
<file>translations/guimain_en.qm</file>
|
||||
<file>translations/libconfload_en.qm</file>
|
||||
<file>translations/libsplit_en.qm</file>
|
||||
<file>translations/mainwindow_en.qm</file>
|
||||
<file>translations/selezout_en.qm</file>
|
||||
<file>translations/titolow_en.qm</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
BIN
bananaSPLIT/UserInterface/resources/translations/about_en.qm
Normal file
BIN
bananaSPLIT/UserInterface/resources/translations/about_en.qm
Normal file
Binary file not shown.
54
bananaSPLIT/UserInterface/resources/translations/about_en.ts
Normal file
54
bananaSPLIT/UserInterface/resources/translations/about_en.ts
Normal file
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="en_US">
|
||||
<context>
|
||||
<name>about</name>
|
||||
<message>
|
||||
<location filename="../../about.ui" line="35"/>
|
||||
<source>About SPEx</source>
|
||||
<translation>About SPEx</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../about.ui" line="82"/>
|
||||
<source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:400; font-style:normal;">
|
||||
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:20pt; font-weight:600;">About SPEx<br /></span><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Versione {ver}</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:7pt;"><br /></span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">SPEx (Split Parse &amp; Extract) e' un tool utile per gli specialisti di linguistica dei corpora che intendono rifinire il loro corpus, eliminando tutti gli elementi non </span><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">necessari e dividendo in file singoli le raccolte di</span><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;"> &quot;articoli&quot; scaricate da database online quali </span><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt; font-style:italic;">Lexis Uni</span><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">.</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Puoi tranquillamente suggerire SPEx ad un tuo collega: ci fa molto piacere! Ricordati solo di mandarci una mail con scopo e impressioni di utilizzo: questo ci aiuta a tenere traccia di quanti ricercatori stanno usando SPEx e pensare a sviluppi futuri di questo tool. </span></p>
|
||||
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:7pt;"><br /></span></p>
|
||||
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt;">SPEx non e' soggetto ad alcun tipo di licenza e viene distribuito senza alcuna garanzia.<br />Essendo un progetto &quot;del tempo libero&quot;, bug e proposte di espansione verranno sicuramente presi in considerazione, anche se le tempistiche potrebbero variare.</span></p>
|
||||
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Contatti:</span><span style=" font-family:'MS Shell Dlg 2'; font-size:7pt;"><br /></span><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt;">12parsec.software@gmail.com</span></p>
|
||||
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">Download:<br /></span><a href="https://drive.google.com/open?id=10zUm7uHk9st36PVotMwh9wqOeXU3xrr8"><span style=" font-family:'MS Shell Dlg 2'; font-size:7pt; text-decoration: underline; color:#0000ff;">https://drive.google.com/open?id=10zUm7uHk9st36PVotMwh9wqOeXU3xrr8</span></a></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7pt; font-weight:400; font-style:normal;">
|
||||
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:20pt; font-weight:600;">About SPEx<br /></span><span style=" font-size:12pt;">Versione {ver}</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">SPEx (Split Parse &amp; Extract) e' un tool, utile ai linguisti che devono costruire un corpus, che ha come funzione principale dividere e ripulire da elementi non necessari raccolte di &quot;articoli&quot; scaricati da database online quali </span><span style=" font-size:12pt; font-style:italic;">LexisNexis</span><span style=" font-size:12pt;">.</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Pui tranquillamente suggerire SPEx ad un tuo collega, ci fa molto piacere! Ricordati solo di mandarci (o farci mandare) una mail con scopo e impressioni di utilizzo: questo ci aiuta a tenere traccia di quanti ricercatori stanno usando SPEx e pensare a sviluppi futuri di questo tool. </span></p>
|
||||
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">SPEx non e' soggetto ad alcun tipo di licenza e viene distribuito senza alcuna garanzia.<br />Essendo un progetto &quot;del tempo libero&quot;, bug e proposte di espansione verranno sicuramente presi in considerazione ma non possiamo dirvi nulla riguardo alle tempistiche.</span></p>
|
||||
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Contatti:</span><br /><span style=" font-size:10pt;">12parsec.software@gmail.com</span></p>
|
||||
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Download:<br /></span><a href="https://drive.google.com/open?id=10zUm7uHk9st36PVotMwh9wqOeXU3xrr8"><span style=" text-decoration: underline; color:#0000ff;">https://drive.google.com/open?id=10zUm7uHk9st36PVotMwh9wqOeXU3xrr8</span></a></p></body></html></source>
|
||||
<translation type="vanished"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7pt; font-weight:400; font-style:normal;">
|
||||
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:20pt; font-weight:600;">About SPEx<br /></span><span style=" font-size:12pt;">Versione {ver}</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">SPEx (Split Parse &amp; Extract) is a useful tool for corpus linguists who wish to refine their corpora, by eliminating unnecessary elements and divide in single files the sets of &quot;articles&quot; downloaded from online databases such as </span><span style=" font-size:12pt; font-style:italic;">Nexis Uni</span><span style=" font-size:12pt;">.</span></p>
|
||||
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">We would be immensely grateful if you could suggest SPEx to your colleagues! Just remember to send us an email telling us what you think of the program, as this will help us to trace how many researchers are using SPEx and think of possible future developments of this tool. </span></p>
|
||||
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p>
|
||||
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;"> You don't need any type of licence to use SPEx. This software is provided "as is", without any warranty.<br />Being a &quot;spare time&quot; project, bugs and expansion proposals will certainly be taken into consideration, although time frames may vary.</span></p>
|
||||
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Contacts:</span><br /><span style=" font-size:10pt;">12parsec.software@gmail.com</span></p>
|
||||
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt;">Download:<br /></span><a href="https://drive.google.com/open?id=10zUm7uHk9st36PVotMwh9wqOeXU3xrr8"><span style=" text-decoration: underline; color:#0000ff;">https://drive.google.com/open?id=10zUm7uHk9st36PVotMwh9wqOeXU3xrr8</span></a></p></body></html></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
BIN
bananaSPLIT/UserInterface/resources/translations/advopt_en.qm
Normal file
BIN
bananaSPLIT/UserInterface/resources/translations/advopt_en.qm
Normal file
Binary file not shown.
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="en_US">
|
||||
<context>
|
||||
<name>editconf</name>
|
||||
<message>
|
||||
<location filename="../../advopt.ui" line="26"/>
|
||||
<source>Opzioni Avanzate</source>
|
||||
<translation>Advanced Options</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../advopt.ui" line="41"/>
|
||||
<source>ATTENZIONE!! Quello che scrivi qui potrebbe rompere tutto!</source>
|
||||
<translation>WARNING!! What you write here may break everything!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../advopt.ui" line="65"/>
|
||||
<source>Da grandi poteri derivano grandi responsabilita'</source>
|
||||
<translation>With great power comes great responsibility</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../advopt.ui" line="99"/>
|
||||
<source>Cancel</source>
|
||||
<translation>Cancel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../advopt.ui" line="106"/>
|
||||
<source>OK</source>
|
||||
<translation>OK</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
Binary file not shown.
@@ -0,0 +1,78 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="en_US">
|
||||
<context>
|
||||
<name>advtitolo3</name>
|
||||
<message>
|
||||
<location filename="../../avanzatetitolo3.ui" line="23"/>
|
||||
<source>Avanzate Titolo</source>
|
||||
<translation>Title - Advanced Options</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../avanzatetitolo3.ui" line="47"/>
|
||||
<source>(Terzo Elemento)</source>
|
||||
<translation>(Third Element)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../avanzatetitolo3.ui" line="54"/>
|
||||
<location filename="../../avanzatetitolo3.ui" line="107"/>
|
||||
<location filename="../../avanzatetitolo3.ui" line="179"/>
|
||||
<source>Numero</source>
|
||||
<translation>Number</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../avanzatetitolo3.ui" line="61"/>
|
||||
<location filename="../../avanzatetitolo3.ui" line="114"/>
|
||||
<location filename="../../avanzatetitolo3.ui" line="189"/>
|
||||
<source>Data</source>
|
||||
<translation>Date</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../avanzatetitolo3.ui" line="68"/>
|
||||
<location filename="../../avanzatetitolo3.ui" line="124"/>
|
||||
<location filename="../../avanzatetitolo3.ui" line="196"/>
|
||||
<source>Titolo</source>
|
||||
<translation>Title</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../avanzatetitolo3.ui" line="100"/>
|
||||
<source>Secondo Elemento</source>
|
||||
<translation>Second Element</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../avanzatetitolo3.ui" line="138"/>
|
||||
<source>Seleziona l'ordine degli elementi nel nomi file</source>
|
||||
<translation>Select the order of the elements in the file name</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../avanzatetitolo3.ui" line="145"/>
|
||||
<source>Prefisso Titolo</source>
|
||||
<translation>Title Prefix</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../avanzatetitolo3.ui" line="172"/>
|
||||
<source>Primo elemento</source>
|
||||
<translation>First Element</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../avanzatetitolo3.ui" line="217"/>
|
||||
<source>Modifica ordine elementi nome file</source>
|
||||
<translation>Modify the order of the elements in the file name</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../avanzatetitolo3.ui" line="226"/>
|
||||
<source>Annulla</source>
|
||||
<translation>Cancel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../avanzatetitolo3.ui" line="233"/>
|
||||
<source>OK</source>
|
||||
<translation>OK</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../avanzatetitolo3.ui" line="242"/>
|
||||
<source>Suffisso Titolo</source>
|
||||
<translation>Title suffix</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
@@ -1,52 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="en" sourcelanguage="it_IT">
|
||||
<context>
|
||||
<name>@default</name>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="41"/>
|
||||
<source>Impostazioni Titolo</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="42"/>
|
||||
<source>Selezione Output</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="87"/>
|
||||
<source>MainWindow: Configurazione non accettata</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="107"/>
|
||||
<source>Prossima Tab</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="112"/>
|
||||
<source>Tab Precedente</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="116"/>
|
||||
<source>Apri Carica Preset</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="117"/>
|
||||
<source>Carica Preset</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="126"/>
|
||||
<source>Riempio tutte le tab</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="131"/>
|
||||
<source>Apri Salva Preset</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
BIN
bananaSPLIT/UserInterface/resources/translations/guimain_en.qm
Normal file
BIN
bananaSPLIT/UserInterface/resources/translations/guimain_en.qm
Normal file
Binary file not shown.
196
bananaSPLIT/UserInterface/resources/translations/guimain_en.ts
Normal file
196
bananaSPLIT/UserInterface/resources/translations/guimain_en.ts
Normal file
@@ -0,0 +1,196 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS><TS version="2.0" language="en" sourcelanguage="it_IT">
|
||||
<context>
|
||||
<name>bananaAdvOpt</name>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="531"/>
|
||||
<source>AdvancedOptions: Configurazione non accettata</source>
|
||||
<translation>Advanced Options: Configuration not accepted</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="537"/>
|
||||
<source>Avanzate Globali</source>
|
||||
<translation>Global Advanced Options</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="545"/>
|
||||
<source>Parametri inseriti validi, configurazione accettata</source>
|
||||
<translation>Valid input parameters, configuration accepted</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>bananaMain</name>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="47"/>
|
||||
<source>Impostazioni Titolo</source>
|
||||
<translation>Title Options</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="48"/>
|
||||
<source>Selezione Output</source>
|
||||
<translation>Select Output</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="93"/>
|
||||
<source>MainWindow: Configurazione non accettata</source>
|
||||
<translation>MainWindow: Configuration not accepted</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="113"/>
|
||||
<source>Prossima Tab</source>
|
||||
<translation>Next Tab</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="118"/>
|
||||
<source>Tab Precedente</source>
|
||||
<translation>Former Tab</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="122"/>
|
||||
<source>Apri Carica Preset</source>
|
||||
<translation>Open Load Preset</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="123"/>
|
||||
<source>Carica Preset</source>
|
||||
<translation>Load Preset</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="132"/>
|
||||
<source>Riempio tutte le tab</source>
|
||||
<translation>Fill all Tabs</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="137"/>
|
||||
<source>Apri Salva Preset</source>
|
||||
<translation>Open Save Preset</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="157"/>
|
||||
<source>Apri Opzioni Avanzate</source>
|
||||
<translation>Open Advanced Options</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="164"/>
|
||||
<source>Apri Opzioni Lingua</source>
|
||||
<translation>Open Language Options</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="173"/>
|
||||
<source>Apri Finestra About</source>
|
||||
<translation>Open About Window</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="177"/>
|
||||
<source>Seleziona Cartella Sorgente</source>
|
||||
<translation>Select Input Folder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="181"/>
|
||||
<source>Selezionata Cartella Sorgente: {}</source>
|
||||
<translation>SelInput Folder Selected: {}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="186"/>
|
||||
<source>Seleziona Cartella Destinazione</source>
|
||||
<translation>Select Output Folder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="190"/>
|
||||
<source>Selezionata Cartella Destinazione: {}</source>
|
||||
<translation>Output Folder Selected: {}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="198"/>
|
||||
<source>Apro in directory: {}</source>
|
||||
<translation>Opening in directory:{}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="166"/>
|
||||
<source>Lingua</source>
|
||||
<translation>Language</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="166"/>
|
||||
<source>Disponibili</source>
|
||||
<translation>Available</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>bananaSelezOut</name>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="443"/>
|
||||
<source>SelezUscita: Configurazione non accettata</source>
|
||||
<translation>SelectOutput: Configuration not accepted</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="447"/>
|
||||
<source>Applico Impostazioni File Uscita</source>
|
||||
<translation>Applying Output File Options</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="487"/>
|
||||
<source>Sto SPLITTANDO, attendi..</source>
|
||||
<translation>SPLITTING, please wait..</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="488"/>
|
||||
<source>Sto Splittando..</source>
|
||||
<translation>Splitting..</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="507"/>
|
||||
<source>FINITO!</source>
|
||||
<translation>DONE!</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>bananaTitolo</name>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="253"/>
|
||||
<source>Titolo: Configurazione non accettata</source>
|
||||
<translation>Title: Configuration not accepted</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="256"/>
|
||||
<source>Mostro la finestra avanzate titolo</source>
|
||||
<translation>Show advanced options window</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="261"/>
|
||||
<source>Applico impostazioni Titolo</source>
|
||||
<translation>Applying Title options</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>bananaTitoloAvanzate</name>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="318"/>
|
||||
<source>AvanzateTitolo: Configurazione non accettata</source>
|
||||
<translation>Title Advanced Options: Configuration not accepted</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="372"/>
|
||||
<source>Avanzate Titolo Accettate</source>
|
||||
<translation>Title Advanced Options Accepted</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="378"/>
|
||||
<source>Avanzate Titolo Rifiutate</source>
|
||||
<translation>Title Advanced Options Rejected</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>init</name>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="45"/>
|
||||
<source>Impostazioni Titolo</source>
|
||||
<translation type="obsolete">Title Settings</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="46"/>
|
||||
<source>Selezione Output</source>
|
||||
<translation type="obsolete">Output Selection</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
Binary file not shown.
@@ -0,0 +1,68 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS><TS version="2.0" language="en_US" sourcelanguage="it_IT">
|
||||
<context>
|
||||
<name>bananaCONF</name>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libconfload.py" line="24"/>
|
||||
<source>Cerco le configurazioni in: [{}]</source>
|
||||
<translation>Searching configurations in [{}]</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libconfload.py" line="26"/>
|
||||
<source>Non mi e' stata fornita una directory per i file di configurazione</source>
|
||||
<translation>Directory for configuration files not provided</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libconfload.py" line="32"/>
|
||||
<source>Carico i file di configurazione</source>
|
||||
<translation>Loading configuration files</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libconfload.py" line="41"/>
|
||||
<source>Caricato correttamente: {}</source>
|
||||
<translation>Correactly loaded: {}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libconfload.py" line="44"/>
|
||||
<source>Impossibile leggere la configurazione:{}
|
||||
<byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/>Controlla il file a riga: {} e colonna:{}</source>
|
||||
<translation>Cannot read configuration: {}
|
||||
<byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/>Check files for rows: {} and colums: {}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libconfload.py" line="47"/>
|
||||
<source>Impossibile aprire il file: {}</source>
|
||||
<translation>Cannot opaen file: {}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libconfload.py" line="49"/>
|
||||
<source>Eccezione inaspettata: {}</source>
|
||||
<translation>Unexpected exception: {}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libconfload.py" line="51"/>
|
||||
<source>Non ho trovato alcun file di configurazione!</source>
|
||||
<translation>No configuration file could be found!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libconfload.py" line="68"/>
|
||||
<source>Salvo la configurazione: {}</source>
|
||||
<translation>Saving configuation: {}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libconfload.py" line="74"/>
|
||||
<source>Impossibile salvare il file: {} - [{}]</source>
|
||||
<translation>Cannot save file: {} - [{}]</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libconfload.py" line="76"/>
|
||||
<source>Errore imprevisto nella scrittura del file: {}</source>
|
||||
<translation>Unexpected error while writing file</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libconfload.py" line="101"/>
|
||||
<source>Parametro di configurazione non valido! [{}]</source>
|
||||
<translation>Configuration parameter not valid! [{}]</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
BIN
bananaSPLIT/UserInterface/resources/translations/libsplit_en.qm
Normal file
BIN
bananaSPLIT/UserInterface/resources/translations/libsplit_en.qm
Normal file
Binary file not shown.
161
bananaSPLIT/UserInterface/resources/translations/libsplit_en.ts
Normal file
161
bananaSPLIT/UserInterface/resources/translations/libsplit_en.ts
Normal file
@@ -0,0 +1,161 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS><TS version="2.0" language="en_US" sourcelanguage="it_IT">
|
||||
<context>
|
||||
<name>bananaSPLITTER</name>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="43"/>
|
||||
<source>Nuovo SPLITTER su file: {}</source>
|
||||
<translation>New SPLITTER on file: {}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="54"/>
|
||||
<source>Controllo se ci sono dei duplicati..</source>
|
||||
<translation>Checking for duplicates..</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="60"/>
|
||||
<source>Salto il controllo dei duplicati..</source>
|
||||
<translation>Skipping check for duplicates..</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="69"/>
|
||||
<source>Non posso sovrascrivere i vecchi file, eliminali manualmente!</source>
|
||||
<translation>Cannot overwrite old files, delete them manually!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="77"/>
|
||||
<source>L'elaborazione del file ha richiesto {:4.2f} sec</source>
|
||||
<translation>File elaboration took {:4.2f} sec</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="80"/>
|
||||
<source>Il file [{}] contiene caratteri non compatibili con la codifica scelta! [{}]</source>
|
||||
<translation>The [{}] file contains characters not compatible with the chosen codification! [{}]</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="92"/>
|
||||
<source>Carico il contenuto..</source>
|
||||
<translation>Loading content..</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="97"/>
|
||||
<source>Impossibile aprire il file: {}! [{}]</source>
|
||||
<translation>Cannto open file: {}! [{}]</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="105"/>
|
||||
<source>Elimino righe vuote e caratteri inutili..</source>
|
||||
<translation>Deleting all blank lines and useless characters..</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="117"/>
|
||||
<source>Errore inaspettato durante l'eliminazione delle righe vuote!</source>
|
||||
<translation>Unexpected error while deleting blank lines!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="228"/>
|
||||
<source>Individuo il contenuto..</source>
|
||||
<translation>Identifying content..</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="278"/>
|
||||
<source>Ho trovato una riga ambigua.. potrebbe essere una data ma non so: [{}]</source>
|
||||
<translation>Ambiguous line found..could be a date but not sure: [{}]</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="273"/>
|
||||
<source>E' successo qualcosa mentre stavo cercando il nome della pubblicazione,<byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/>controlla i file di uscita! [{}]</source>
|
||||
<translation>Soemthing happen while seraching for the publication name, <byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/>chek output files! [{}]</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="292"/>
|
||||
<source>Errore inaspettato, contatta il tuo sviluppatore di fiducia!</source>
|
||||
<translation>Unexpected error, please contact your trusted developer!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="190"/>
|
||||
<source>Ho individuato una separatore valido prima che si chiusesse l'articolo precedente, controlla i tuoi file in uscita!
|
||||
<byte value="x9"/><byte value="x9"/><byte value="x9"/>L'errore dovrebbe essere intorno all'articolo {} ma non sono sicuro!
|
||||
<byte value="x9"/><byte value="x9"/><byte value="x9"/>[{}]</source>
|
||||
<translation>Valid separator found before the previous article ended, check output files!
|
||||
<byte value="x9"/><byte value="x9"/><byte value="x9"/>The error should be around article {} but I'm not sure!
|
||||
<byte value="x9"/><byte value="x9"/><byte value="x9"/>[{}]</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="327"/>
|
||||
<source>Stato Interno Sconosciuto</source>
|
||||
<translation>Internal Status Not Recognized</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="331"/>
|
||||
<source>Nel file ho trovato {0} articoli..</source>
|
||||
<translation>Found {0} articles int he file..</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="333"/>
|
||||
<source>Attentione, LexisNexis ne ha saltati {} !!!</source>
|
||||
<translation>Warning, LexisNexis skipped {} !!!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="252"/>
|
||||
<source>Il conto dei documenti non torna! LexisNexis ne ha saltato qualcuno!
|
||||
Precedente:{0}-Attuale:{1}</source>
|
||||
<translation>Something doesn't add up! LexisNexis skipped some articles!
|
||||
Previous: {0}-Current:{1}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="310"/>
|
||||
<source>Ho individuato una separatore valido prima che si chiusesse l'articolo precedente, controlla i tuoi file in uscita!
|
||||
<byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/>L'errore dovrebbe essere intorno all'articolo {} ma non sono sicuro!
|
||||
<byte value="x9"/><byte value="x9"/>[{}]</source>
|
||||
<translation>Found a valid separator before the previous article ended, check output files!
|
||||
<byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/><byte value="x9"/>The error should be around article {} but I'm not sure!
|
||||
<byte value="x9"/><byte value="x9"/>[{}]</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="350"/>
|
||||
<source>Duplicato: {}</source>
|
||||
<translation>Duplicate: {}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="354"/>
|
||||
<source>Ho rimosso {} duplicati di {} articoli..</source>
|
||||
<translation>Removed {} duplicates of {} articles..</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="360"/>
|
||||
<source>Salvo gli articoli in file separati...</source>
|
||||
<translation>Saving articles in separate files...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="390"/>
|
||||
<source>Persorso: {0}</source>
|
||||
<translation>Path: {}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="400"/>
|
||||
<source>Qualcosa e' andato storto, non riesco a scrivere il file: {}</source>
|
||||
<translation>Something went wrong, cannot write file: {}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="385"/>
|
||||
<source>Ho salvato meno file rispetto a quelli trovati!</source>
|
||||
<translation>Saved fewer files than found!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="389"/>
|
||||
<source>Salvo gli articoli in un singolo file vicino agli originali...</source>
|
||||
<translation>Saving article in a single file near the originals...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="28"/>
|
||||
<source>Sto operando sul file: {}..</source>
|
||||
<translation>Working on file: {}..</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="37"/>
|
||||
<source>Non e' stato fornito il nome di alcun file da splittare!</source>
|
||||
<translation>The name of the file to split was not provided!</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
@@ -1,130 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="en_150" sourcelanguage="it_IT">
|
||||
<context>
|
||||
<name>mainwin</name>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="32"/>
|
||||
<source>bananaSPLIT</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="58"/>
|
||||
<source>Finestra dei messaggi</source>
|
||||
<translation>Message Box</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="93"/>
|
||||
<source>Preset corrente: </source>
|
||||
<translation>Current Preset:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="106"/>
|
||||
<location filename="mainwindow.ui" line="265"/>
|
||||
<location filename="mainwindow.ui" line="272"/>
|
||||
<source>...</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="149"/>
|
||||
<source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:6.6pt; font-weight:400; font-style:normal;">
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;"><br /></p></body></html></source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="170"/>
|
||||
<source>Selezione Input</source>
|
||||
<translation>Input Select</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="187"/>
|
||||
<location filename="mainwindow.ui" line="213"/>
|
||||
<source>-> </source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="242"/>
|
||||
<source>Cartella sorgente</source>
|
||||
<translation>Source Folder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="254"/>
|
||||
<source>Cartella destinazione</source>
|
||||
<translation>Destination Folder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="308"/>
|
||||
<source>File disponibili per la conversione</source>
|
||||
<translation>Avalable Files</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="342"/>
|
||||
<source>Versione dei File</source>
|
||||
<translation>File Version</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="355"/>
|
||||
<source>Nuova</source>
|
||||
<translation>New</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="371"/>
|
||||
<source>Vecchia</source>
|
||||
<translation>Old</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="398"/>
|
||||
<source>Avanti</source>
|
||||
<translation>Next</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="437"/>
|
||||
<source>File</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="444"/>
|
||||
<location filename="mainwindow.ui" line="483"/>
|
||||
<source>Opzioni</source>
|
||||
<translation>Options</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="451"/>
|
||||
<source>Help</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="466"/>
|
||||
<source>Carica Preset</source>
|
||||
<translation>Load Preset</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="478"/>
|
||||
<source>Salva Preset</source>
|
||||
<translation>Save Preset</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="495"/>
|
||||
<source>Lingua Interfaccia</source>
|
||||
<translation>Interface Language</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="504"/>
|
||||
<source>Avanzate</source>
|
||||
<translation>Advenced</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="516"/>
|
||||
<source>Manuale</source>
|
||||
<translation>User Manual</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="mainwindow.ui" line="525"/>
|
||||
<source>About SPEx</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
Binary file not shown.
@@ -0,0 +1,130 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="en_US">
|
||||
<context>
|
||||
<name>mainwin</name>
|
||||
<message>
|
||||
<location filename="../../mainwindow.ui" line="32"/>
|
||||
<source>bananaSPLIT</source>
|
||||
<translation>bananaSPLIT</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../mainwindow.ui" line="58"/>
|
||||
<source>Finestra dei messaggi</source>
|
||||
<translation>Communications window</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../mainwindow.ui" line="93"/>
|
||||
<source>Preset corrente: </source>
|
||||
<translation>Current preset: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../mainwindow.ui" line="106"/>
|
||||
<location filename="../../mainwindow.ui" line="265"/>
|
||||
<location filename="../../mainwindow.ui" line="272"/>
|
||||
<source>...</source>
|
||||
<translation>...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../mainwindow.ui" line="149"/>
|
||||
<source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:6.6pt; font-weight:400; font-style:normal;">
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:7pt;"><br /></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../mainwindow.ui" line="170"/>
|
||||
<source>Selezione Input</source>
|
||||
<translation>Select Input</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../mainwindow.ui" line="187"/>
|
||||
<location filename="../../mainwindow.ui" line="213"/>
|
||||
<source>-> </source>
|
||||
<translation>-> </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../mainwindow.ui" line="242"/>
|
||||
<source>Cartella sorgente</source>
|
||||
<translation>Input Folder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../mainwindow.ui" line="254"/>
|
||||
<source>Cartella destinazione</source>
|
||||
<translation>Output Folder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../mainwindow.ui" line="308"/>
|
||||
<source>File disponibili per la conversione</source>
|
||||
<translation>Files available for conversion</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../mainwindow.ui" line="342"/>
|
||||
<source>Versione dei File</source>
|
||||
<translation>File Version</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../mainwindow.ui" line="355"/>
|
||||
<source>Nuova</source>
|
||||
<translation>New (since 2019)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../mainwindow.ui" line="371"/>
|
||||
<source>Vecchia</source>
|
||||
<translation>Old</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../mainwindow.ui" line="398"/>
|
||||
<source>Avanti</source>
|
||||
<translation>OK</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../mainwindow.ui" line="437"/>
|
||||
<source>File</source>
|
||||
<translation>File</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../mainwindow.ui" line="444"/>
|
||||
<location filename="../../mainwindow.ui" line="483"/>
|
||||
<source>Opzioni</source>
|
||||
<translation>Options</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../mainwindow.ui" line="451"/>
|
||||
<source>Help</source>
|
||||
<translation>Help</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../mainwindow.ui" line="466"/>
|
||||
<source>Carica Preset</source>
|
||||
<translation>Load Preset</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../mainwindow.ui" line="478"/>
|
||||
<source>Salva Preset</source>
|
||||
<translation>Save Preset</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../mainwindow.ui" line="495"/>
|
||||
<source>Lingua Interfaccia</source>
|
||||
<translation>Interface Language</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../mainwindow.ui" line="504"/>
|
||||
<source>Avanzate</source>
|
||||
<translation>Advanced Options</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../mainwindow.ui" line="516"/>
|
||||
<source>Manuale</source>
|
||||
<translation>Manual</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../mainwindow.ui" line="525"/>
|
||||
<source>About SPEx</source>
|
||||
<translation>About SPEx</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
BIN
bananaSPLIT/UserInterface/resources/translations/selezout_en.qm
Normal file
BIN
bananaSPLIT/UserInterface/resources/translations/selezout_en.qm
Normal file
Binary file not shown.
@@ -0,0 +1,78 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="en_US">
|
||||
<context>
|
||||
<name>selezout</name>
|
||||
<message>
|
||||
<location filename="../../selezout.ui" line="14"/>
|
||||
<source>Seleziona Linuga e Output</source>
|
||||
<translation>Select Language and Output</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../selezout.ui" line="31"/>
|
||||
<source>Seleziona la lingua degli articoli</source>
|
||||
<translation>Select article language</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../selezout.ui" line="92"/>
|
||||
<source>Seleziona il tipo di file da salvare</source>
|
||||
<translation>Select file type</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../selezout.ui" line="116"/>
|
||||
<source>Bodyfile + File singoli</source>
|
||||
<translation>Bodyfile + Single files</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../selezout.ui" line="131"/>
|
||||
<source>Bodyfile</source>
|
||||
<translation>Bodyfile</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../selezout.ui" line="143"/>
|
||||
<source>File singoli</source>
|
||||
<translation>Single files</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../selezout.ui" line="163"/>
|
||||
<source>Altre Opzioni </source>
|
||||
<translation>Other Options </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../selezout.ui" line="190"/>
|
||||
<source>Tenta rimozione duplicati</source>
|
||||
<translation>Attempt duplicates removal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../selezout.ui" line="202"/>
|
||||
<source>Includi titolo all'interno del file</source>
|
||||
<translation>Include title inside file</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../selezout.ui" line="214"/>
|
||||
<source>Rimuovi interruzioni parola (a capo)</source>
|
||||
<translatorcomment>Non so se è giusto</translatorcomment>
|
||||
<translation>Delete line breaks</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../selezout.ui" line="226"/>
|
||||
<source>Svuota cartella di destinazione</source>
|
||||
<translation>Empty output folder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../selezout.ui" line="240"/>
|
||||
<source>Caratteri speciali da rimuovere </source>
|
||||
<translation>Special characters to remove </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../selezout.ui" line="306"/>
|
||||
<source>Indietro</source>
|
||||
<translation>Back</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../selezout.ui" line="362"/>
|
||||
<source>SPLITTA!</source>
|
||||
<translation>SPLIT!</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
BIN
bananaSPLIT/UserInterface/resources/translations/titolow_en.qm
Normal file
BIN
bananaSPLIT/UserInterface/resources/translations/titolow_en.qm
Normal file
Binary file not shown.
106
bananaSPLIT/UserInterface/resources/translations/titolow_en.ts
Normal file
106
bananaSPLIT/UserInterface/resources/translations/titolow_en.ts
Normal file
@@ -0,0 +1,106 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="en_US">
|
||||
<context>
|
||||
<name>titolo</name>
|
||||
<message>
|
||||
<location filename="../../titolow.ui" line="14"/>
|
||||
<source>Nomi file di Uscita</source>
|
||||
<translation>Output file name</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../titolow.ui" line="36"/>
|
||||
<source>Numero di caratteri</source>
|
||||
<translation>Character number</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Avanzate Titolo</source>
|
||||
<translation type="vanished">Advanced Options (Title)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../titolow.ui" line="113"/>
|
||||
<source>Opzioni Avanzate (Titolo)</source>
|
||||
<translation>Advanced Options (Title)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../titolow.ui" line="156"/>
|
||||
<source>Indietro</source>
|
||||
<translation>Back</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../titolow.ui" line="187"/>
|
||||
<source>Avanti</source>
|
||||
<translation>Next</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../titolow.ui" line="221"/>
|
||||
<source>YYYY MM DD, es. 2000 12 31 (jpn)</source>
|
||||
<translation>YYYY MM DD, eg. 2000 12 31 (Jpn)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../titolow.ui" line="242"/>
|
||||
<source>DD MM YYYY, es. 31 12 2000 (ita)</source>
|
||||
<translation>DD MM YYYY, eg. 31 12 2000 (Ita)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../titolow.ui" line="260"/>
|
||||
<source>MM DD YYYY, es. 12 31 2000 (us)</source>
|
||||
<translation>MM DD YYYY, eg. 12 31 2000 (US)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../titolow.ui" line="286"/>
|
||||
<source>Impostazioni nome file in uscita</source>
|
||||
<translation>Filename options</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../titolow.ui" line="304"/>
|
||||
<source>Data</source>
|
||||
<translation>Date</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../titolow.ui" line="335"/>
|
||||
<source>Titolo articolo</source>
|
||||
<translation>Article title</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../titolow.ui" line="355"/>
|
||||
<source>Spazio</source>
|
||||
<translation>Space</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../titolow.ui" line="376"/>
|
||||
<source>,</source>
|
||||
<translation>,</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../titolow.ui" line="397"/>
|
||||
<source>+</source>
|
||||
<translation>+</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../titolow.ui" line="418"/>
|
||||
<source>-</source>
|
||||
<translation>-</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../titolow.ui" line="439"/>
|
||||
<source>_</source>
|
||||
<translation>_</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../titolow.ui" line="462"/>
|
||||
<source>Altro:</source>
|
||||
<translation>Other:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../titolow.ui" line="518"/>
|
||||
<source>Separatore</source>
|
||||
<translation>Separator</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../titolow.ui" line="543"/>
|
||||
<source>Numero documento</source>
|
||||
<translation>Document number</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
@@ -110,7 +110,7 @@
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Avanzate Titolo</string>
|
||||
<string>Opzioni Avanzate (Titolo)</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resources/resources.qrc">
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 20 KiB |
@@ -1,11 +1,13 @@
|
||||
{
|
||||
"version": "v1.4",
|
||||
"version": "v1.41",
|
||||
"paths": {
|
||||
"lastUsed": "defaults.json",
|
||||
"configurationPath": "./conf/",
|
||||
"INworkPath": "C://",
|
||||
"OUTworkPath": "C://",
|
||||
"fileList": []
|
||||
"fileList": [
|
||||
"bdlog.txt"
|
||||
]
|
||||
},
|
||||
"docStruct": {
|
||||
"fileVersNew": false,
|
||||
@@ -36,7 +38,7 @@
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"uiLang": "it",
|
||||
"uiLang": "en",
|
||||
"winW": 800,
|
||||
"winH": 700,
|
||||
"encoding": "windows-1252",
|
||||
|
||||
@@ -3,6 +3,8 @@ Created on 2 nov 2019
|
||||
|
||||
@author: Emanuele Trabattoni
|
||||
TODO LIST
|
||||
1. rendere threaded lo splitter.. tentativo colore 100..
|
||||
|
||||
'''
|
||||
import sys, copy, json
|
||||
import PyQt5.QtWidgets
|
||||
@@ -20,7 +22,10 @@ from libconfload import bananaCONF
|
||||
from libsplit import bananaSPLITTER
|
||||
|
||||
from PyQt5.QtCore import QDir, QSize, QTranslator, pyqtSlot, pyqtSignal
|
||||
from PyQt5.QtWidgets import QMessageBox, QSizePolicy
|
||||
from PyQt5.QtWidgets import QMessageBox, QSizePolicy, QInputDialog
|
||||
|
||||
#modo brutto per mettere la lista delle lingue in un posto solo
|
||||
langlist = ['it','en']
|
||||
|
||||
class bananaMain(PyQt5.QtWidgets.QMainWindow):
|
||||
def __init__(self, logger=None, confloader=None):
|
||||
@@ -38,8 +43,8 @@ class bananaMain(PyQt5.QtWidgets.QMainWindow):
|
||||
|
||||
|
||||
#popola le tab con le finestre giuste
|
||||
self.ui.wgt_main.addTab(self.titolo, tr("Impostazioni Titolo"))
|
||||
self.ui.wgt_main.addTab(self.selezout, tr("Selezione Output"))
|
||||
self.ui.wgt_main.addTab(self.titolo, self.tr("Impostazioni Titolo"))
|
||||
self.ui.wgt_main.addTab(self.selezout, self.tr("Selezione Output"))
|
||||
|
||||
# connetti bottoni avanti
|
||||
self.ui.btn_avanti.clicked.connect(self.nextTab)
|
||||
@@ -84,7 +89,7 @@ class bananaMain(PyQt5.QtWidgets.QMainWindow):
|
||||
self.ui.rad_fileOld.setChecked(not self.conf.getParam('docStruct', 'fileVersNew'))
|
||||
self.fillFileList()
|
||||
except:
|
||||
self.log.critical(tr("MainWindow: Configurazione non accettata"))
|
||||
self.log.critical(self.tr("MainWindow: Configurazione non accettata"))
|
||||
|
||||
def fillAllInterfaces(self):
|
||||
self.fillInterface()
|
||||
@@ -104,31 +109,31 @@ class bananaMain(PyQt5.QtWidgets.QMainWindow):
|
||||
|
||||
def nextTab(self):
|
||||
self.ui.wgt_main.setCurrentIndex(self.ui.wgt_main.currentIndex()+1)
|
||||
self.logger.debug(tr("Prossima Tab"))
|
||||
self.logger.debug(self.tr("Prossima Tab"))
|
||||
pass
|
||||
|
||||
def prevTab(self):
|
||||
self.ui.wgt_main.setCurrentIndex(self.ui.wgt_main.currentIndex()-1)
|
||||
self.logger.debug(tr("Tab Precedente"))
|
||||
self.logger.debug(self.tr("Tab Precedente"))
|
||||
pass
|
||||
|
||||
def openLoadPreset(self):
|
||||
self.logger.debug(tr("Apri Carica Preset"))
|
||||
lf = PyQt5.QtWidgets.QFileDialog(self,tr("Carica Preset"),self.conf.getParam('paths', 'configurationPath'))
|
||||
self.logger.debug(self.tr("Apri Carica Preset"))
|
||||
lf = PyQt5.QtWidgets.QFileDialog(self,self.tr("Carica Preset"),self.conf.getParam('paths', 'configurationPath'))
|
||||
lf.setAcceptMode(PyQt5.QtWidgets.QFileDialog.AcceptOpen)
|
||||
lf.setFileMode(PyQt5.QtWidgets.QFileDialog.ExistingFile)
|
||||
lf.setNameFilter("bananaCONF (*.json)")
|
||||
if lf.exec():
|
||||
cf = str(lf.selectedFiles()[0].split('/')[-1])
|
||||
self.logger.info(tr(f"Apro la configurazione: {cf}"))
|
||||
self.logger.info(self.tr(f"Apro la configurazione: {cf}"))
|
||||
self.conf.open()
|
||||
self.conf.use(cf)
|
||||
self.logger.debug(tr("Riempio tutte le tab"))
|
||||
self.logger.debug(self.tr("Riempio tutte le tab"))
|
||||
self.fillAllInterfaces()
|
||||
pass
|
||||
|
||||
def openSavePreset(self):
|
||||
self.logger.debug(tr("Apri Salva Preset"))
|
||||
self.logger.debug(self.tr("Apri Salva Preset"))
|
||||
self.applicaTutto()
|
||||
sf = PyQt5.QtWidgets.QFileDialog(self,"Salva Preset",self.conf.getParam('paths', 'configurationPath'))
|
||||
sf.setAcceptMode(PyQt5.QtWidgets.QFileDialog.AcceptSave)
|
||||
@@ -143,47 +148,53 @@ class bananaMain(PyQt5.QtWidgets.QMainWindow):
|
||||
self.conf.save(fName="defaults.json")
|
||||
self.conf.use(prev)
|
||||
##
|
||||
self.logger.debug(tr(f"Scrivo la configurazione: {rv}"))
|
||||
self.logger.debug(self.tr(f"Scrivo la configurazione: {rv}"))
|
||||
self.conf.save(fName=rv)
|
||||
pass
|
||||
|
||||
def openAdvOpt(self):
|
||||
self.logger.debug(tr("Apri Opzioni Avanzate"))
|
||||
self.logger.debug(self.tr("Apri Opzioni Avanzate"))
|
||||
self.advopt.fillInterface()
|
||||
self.advopt.show()
|
||||
pass
|
||||
|
||||
def openLanguage(self):
|
||||
self.logger.debug(tr("Apri Opzioni Lingua"))
|
||||
pass
|
||||
|
||||
global langlist
|
||||
self.logger.debug(self.tr("Apri Opzioni Lingua"))
|
||||
flag = False
|
||||
lang,flag = QInputDialog.getItem(self, self.tr("Lingua"), self.tr("Disponibili"), langlist, 0, False)
|
||||
if flag:
|
||||
self.conf.setParam(('settings','uiLang'),lang)
|
||||
else:
|
||||
pass
|
||||
|
||||
def openAbout(self):
|
||||
self.logger.debug(tr("Apri Finestra About"))
|
||||
self.spxabt=spexAbout()
|
||||
self.logger.debug(self.tr("Apri Finestra About"))
|
||||
self.spxabt=spexAbout(confloader=self.conf)
|
||||
|
||||
def selezSorg(self):
|
||||
rv = PyQt5.QtWidgets.QFileDialog.getExistingDirectory(self,tr("Seleziona Cartella Sorgente"),self.conf.getParam('paths','INworkPath'))
|
||||
rv = PyQt5.QtWidgets.QFileDialog.getExistingDirectory(self,self.tr("Seleziona Cartella Sorgente"),self.conf.getParam('paths','INworkPath'))
|
||||
if rv is not "":
|
||||
self.conf.setParam(keys=('paths','INworkPath',), val=rv+"/")
|
||||
self.ui.lbl_sorg.setText(rv)
|
||||
self.logger.info(tr("Selezionata Cartella Sorgente: {}").format(rv+"/"))
|
||||
self.logger.info(self.tr("Selezionata Cartella Sorgente: {}").format(rv+"/"))
|
||||
self.fillFileList()
|
||||
pass
|
||||
|
||||
def selezDest(self):
|
||||
rv = PyQt5.QtWidgets.QFileDialog.getExistingDirectory(self,tr("Seleziona Cartella Destinazione"),self.conf.getParam('paths','OUTworkPath'))
|
||||
rv = PyQt5.QtWidgets.QFileDialog.getExistingDirectory(self,self.tr("Seleziona Cartella Destinazione"),self.conf.getParam('paths','OUTworkPath'))
|
||||
if rv is not "":
|
||||
self.conf.setParam(keys=('paths','OUTworkPath',), val=rv+"/")
|
||||
self.ui.lbl_dest.setText(rv)
|
||||
self.logger.info(tr("Selezionata Cartella Destinazione: {}").format(rv+"/"))
|
||||
self.logger.info(self.tr("Selezionata Cartella Destinazione: {}").format(rv+"/"))
|
||||
pass
|
||||
|
||||
def selezVers(self):
|
||||
self.conf.setParam(('docStruct','fileVersNew'), self.ui.rad_fileNew.isChecked())
|
||||
self.logger.debug(tr(f"Selezionata Versione File"))
|
||||
self.logger.debug(self.tr(f"Selezionata Versione File"))
|
||||
|
||||
def openFileDialog(self, name, path):
|
||||
self.log.debug(tr("Apro in directory: {}").format(path))
|
||||
self.log.debug(self.tr("Apro in directory: {}").format(path))
|
||||
return
|
||||
|
||||
def applicaTutto(self):
|
||||
@@ -238,15 +249,15 @@ class bananaTitolo(PyQt5.QtWidgets.QWidget):
|
||||
#finestra avanzate
|
||||
self.advtitolo.fillInterface()
|
||||
except:
|
||||
self.log.critical(tr("Titolo: Configurazione non accettata"))
|
||||
self.log.critical(self.tr("Titolo: Configurazione non accettata"))
|
||||
|
||||
def spawnAvanzate(self):
|
||||
self.log.debug(tr("Mostro la finestra avanzate titolo"))
|
||||
self.log.debug(self.tr("Mostro la finestra avanzate titolo"))
|
||||
self.advtitolo.show()
|
||||
pass
|
||||
|
||||
def applica(self):
|
||||
self.log.info(tr("Applico impostazioni Titolo"))
|
||||
self.log.info(self.tr("Applico impostazioni Titolo"))
|
||||
self.conf.setParam(('docStruct','outDate'),self.titoloui.chk_data.isChecked())
|
||||
self.conf.setParam(('docStruct','outNumber'),self.titoloui.chk_docnum.isChecked())
|
||||
self.conf.setParam(('docStruct','outTitle'),self.titoloui.chk_titolo.isChecked())
|
||||
@@ -303,7 +314,7 @@ class bananaTitoloAvanzate(PyQt5.QtWidgets.QWidget):
|
||||
self.titoloavui.txt_prefisso.setText(self.conf.getParam('docStruct','outPrefix'))
|
||||
self.titoloavui.txt_suffisso.setText(self.conf.getParam('docStruct','outSuffix'))
|
||||
except:
|
||||
self.log.critical(tr("AvanzateTitolo: Configurazione non accettata"))
|
||||
self.log.critical(self.tr("AvanzateTitolo: Configurazione non accettata"))
|
||||
|
||||
def gestisciBottoni(self):
|
||||
#PRIMO
|
||||
@@ -357,13 +368,13 @@ class bananaTitoloAvanzate(PyQt5.QtWidgets.QWidget):
|
||||
pass
|
||||
|
||||
def returnOk(self):
|
||||
self.log.info(tr("Avanzate Titolo Accettate"))
|
||||
self.log.info(self.tr("Avanzate Titolo Accettate"))
|
||||
self.applica()
|
||||
self.hide()
|
||||
pass
|
||||
|
||||
def returnKo(self):
|
||||
self.log.info(tr("Avanzate Titolo Rifiutate"))
|
||||
self.log.info(self.tr("Avanzate Titolo Rifiutate"))
|
||||
self.hide()
|
||||
pass
|
||||
|
||||
@@ -428,11 +439,11 @@ class bananaSelezOut(PyQt5.QtWidgets.QWidget):
|
||||
self.selezoutui.lin_specialChars.setText(''.join(self.conf.getParam('settings', 'delChars')))
|
||||
pass
|
||||
except:
|
||||
self.log.critical(tr("SelezUscita: Configurazione non accettata"))
|
||||
self.log.critical(self.tr("SelezUscita: Configurazione non accettata"))
|
||||
pass
|
||||
|
||||
def applica(self):
|
||||
self.log.info(tr("Applico Impostazioni File Uscita"))
|
||||
self.log.info(self.tr("Applico Impostazioni File Uscita"))
|
||||
self.conf.setParam(('docStruct', 'language'), self.selezoutui.cmb_lingua.currentText())
|
||||
self.conf.setParam(('docStruct', 'languageIdx'), self.selezoutui.cmb_lingua.currentIndex())
|
||||
self.conf.setParam(('settings', 'saveBodyFile'), self.selezoutui.rad_mainbody.isChecked()
|
||||
@@ -472,8 +483,8 @@ class bananaSelezOut(PyQt5.QtWidgets.QWidget):
|
||||
splconf['docStruct']['outNameFormat'] = splconf['docStruct']['outNameSep'].join(nametemp)+splconf['docStruct']['outExt']
|
||||
|
||||
#costruisco messageBox
|
||||
msgb = QMessageBox(parent=self, icon=QMessageBox.Warning, text=tr("Sto SPLITTANDO, attendi.."))
|
||||
msgb.setWindowTitle(tr("Sto Splittando.."))
|
||||
msgb = QMessageBox(parent=self, icon=QMessageBox.Warning, text=self.tr("Sto SPLITTANDO, attendi.."))
|
||||
msgb.setWindowTitle(self.tr("Sto Splittando.."))
|
||||
msgb.show()
|
||||
|
||||
@pyqtSlot()
|
||||
@@ -490,9 +501,9 @@ class bananaSelezOut(PyQt5.QtWidgets.QWidget):
|
||||
tDict[f].run()
|
||||
#QThreadPool.globalInstance().start(tDict[f])
|
||||
except Exception as e:
|
||||
self.log.error(tr(f"Impossibile avviare lo splitter: {e}"))
|
||||
self.log.error(self.tr(f"Impossibile avviare lo splitter: {e}"))
|
||||
|
||||
msgb.setText(tr("FINITO!"))
|
||||
msgb.setText(self.tr("FINITO!"))
|
||||
pass
|
||||
|
||||
class bananaAdvOpt(PyQt5.QtWidgets.QWidget):
|
||||
@@ -516,28 +527,28 @@ class bananaAdvOpt(PyQt5.QtWidgets.QWidget):
|
||||
try:
|
||||
self.advoptui.txt_confFile.setPlainText(json.dumps(self.conf.dump(),indent=2))
|
||||
except:
|
||||
self.log.critical(tr("AdvancedOptions: Configurazione non accettata"))
|
||||
self.log.critical(self.tr("AdvancedOptions: Configurazione non accettata"))
|
||||
pass
|
||||
|
||||
def accetta(self):
|
||||
self.errmsg = QMessageBox()
|
||||
self.errmsg.setModal(True)
|
||||
self.errmsg.setWindowTitle(tr("Avanzate Globali"))
|
||||
self.errmsg.setWindowTitle(self.tr("Avanzate Globali"))
|
||||
icon = PyQt5.QtGui.QIcon()
|
||||
icon.addPixmap(PyQt5.QtGui.QPixmap(":/icons/icons8-smartphone-ram-100.png"), PyQt5.QtGui.QIcon.Normal, PyQt5.QtGui.QIcon.Off)
|
||||
self.errmsg.setWindowIcon(icon)
|
||||
try:
|
||||
self.conf.loads(self.advoptui.txt_confFile.toPlainText())
|
||||
self.log.info(tr("Parametri inseriti validi, configurazione accettata"))
|
||||
self.log.info(self.tr("Parametri inseriti validi, configurazione accettata"))
|
||||
self.errmsg.setIcon(QMessageBox.Information)
|
||||
self.errmsg.setText(tr("Parametri inseriti validi, configurazione accettata"))
|
||||
self.errmsg.setText(self.tr("Parametri inseriti validi, configurazione accettata"))
|
||||
self.errmsg.show()
|
||||
self.update.emit()
|
||||
self.hide()
|
||||
except Exception as e:
|
||||
self.log.error(tr(f"Errore nei parametri! {e}"))
|
||||
self.log.error(self.tr(f"Errore nei parametri! {e}"))
|
||||
self.errmsg.setIcon(QMessageBox.Critical)
|
||||
self.errmsg.setText(tr(f"Errore nei parametri!\n{e}"))
|
||||
self.errmsg.setText(self.tr(f"Errore nei parametri!\n{e}"))
|
||||
self.errmsg.show()
|
||||
pass
|
||||
|
||||
@@ -556,6 +567,7 @@ class spexAbout(PyQt5.QtWidgets.QDialog):
|
||||
PyQt5.QtWidgets.QDialog.__init__(self)
|
||||
self.abt = Ui_about()
|
||||
self.abt.setupUi(self)
|
||||
self.abt.lbl_info.setText(self.abt.lbl_info.text().replace('{ver}',confloader.getParam('version')))
|
||||
self.show()
|
||||
pass
|
||||
#############################################################
|
||||
@@ -576,13 +588,26 @@ if __name__ == '__main__':
|
||||
conf.use(conf.getParam('paths', 'lastUsed'))
|
||||
|
||||
iflan = conf.getParam('settings','uiLang')
|
||||
if iflan != 'it':
|
||||
t = QTranslator()
|
||||
t.load(f":/tr/translations/mainwindow_{iflan}.qm")
|
||||
app.installTranslator(t)
|
||||
trlist = [f":/tr/translations/guimain_{iflan}.qm",
|
||||
f":/tr/translations/libconfload_{iflan}.qm",
|
||||
f":/tr/translations/libsplit_{iflan}.qm",
|
||||
f":/tr/translations/mainwindow_{iflan}.qm",
|
||||
f":/tr/translations/avanzatetitolo3_{iflan}.qm",
|
||||
f":/tr/translations/titolow_{iflan}.qm",
|
||||
f":/tr/translations/selezout_{iflan}.qm",
|
||||
f":/tr/translations/about_{iflan}.qm"]
|
||||
qtrlist=[]
|
||||
|
||||
if iflan != 'it':
|
||||
LOGGER.debug("Carico Traduzioni: ")
|
||||
for tr in trlist:
|
||||
qtr = QTranslator()
|
||||
print(qtr.load(tr),f" {tr}")
|
||||
app.installTranslator(qtr)
|
||||
qtrlist.append(qtr)
|
||||
|
||||
except Exception as e:
|
||||
print(e)
|
||||
print(f"Errore main: {e}")
|
||||
sys.exit()
|
||||
|
||||
window = bananaMain(logger=LOGGER, confloader=conf)
|
||||
|
||||
@@ -4,27 +4,32 @@ Created on 2 nov 2019
|
||||
@author: Emanuele Trabattoni
|
||||
'''
|
||||
import json,os,glob,copy
|
||||
from PyQt5.QtCore import QObject
|
||||
|
||||
class bananaCONF(object):
|
||||
class bananaCONF(QObject):
|
||||
'''
|
||||
Carica e Salva file di configurazione per bananaSPLITTER
|
||||
'''
|
||||
def __init__(self, workdir=None, logger=None):
|
||||
self.log = logger
|
||||
self.fileList = None
|
||||
self.workdir = None
|
||||
self.inUse = None
|
||||
self.settingsList = dict()
|
||||
if workdir is not None:
|
||||
self.workdir = workdir
|
||||
os.chdir(workdir)
|
||||
self.log.debug(tr("Cerco le configurazioni in: [{}]").format(os.getcwd()))
|
||||
else:
|
||||
self.log.error(tr("Non mi e' stata fornita una directory per i file di configurazione"))
|
||||
pass
|
||||
|
||||
try:
|
||||
QObject.__init__(self)
|
||||
self.log = logger
|
||||
self.fileList = None
|
||||
self.workdir = None
|
||||
self.inUse = None
|
||||
self.settingsList = dict()
|
||||
if workdir is not None:
|
||||
self.workdir = workdir
|
||||
os.chdir(workdir)
|
||||
self.log.debug(self.tr("Cerco le configurazioni in: [{}]").format(os.getcwd()))
|
||||
else:
|
||||
self.log.error(self.tr("Non mi e' stata fornita una directory per i file di configurazione"))
|
||||
pass
|
||||
except Exception as e:
|
||||
print(f"libConfload Exception: {e}")
|
||||
|
||||
def open(self):
|
||||
self.log.info(tr("Carico i file di configurazione"))
|
||||
self.log.info(self.tr("Carico i file di configurazione"))
|
||||
self.fileList = glob.glob(r"*.json")
|
||||
if len(self.fileList) > 0:
|
||||
for f in self.fileList:
|
||||
@@ -33,17 +38,17 @@ class bananaCONF(object):
|
||||
tf = json.load(fp)
|
||||
fName = f.split("\\")[-1]
|
||||
self.settingsList[fName] = copy.deepcopy(tf)
|
||||
self.log.info(tr("Caricato correttamente: {}").format(fName))
|
||||
self.log.info(self.tr("Caricato correttamente: {}").format(fName))
|
||||
fp.close()
|
||||
except json.JSONDecodeError as e:
|
||||
self.log.error(tr("Impossibile leggere la configurazione:{}\n \
|
||||
self.log.error(self.tr("Impossibile leggere la configurazione:{}\n \
|
||||
Controlla il file a riga: {} e colonna:{}").format(e.doc, e.lineno, e.colno))
|
||||
except IOError as ee:
|
||||
self.log.error(tr("Impossibile aprire il file: {}").format(ee))
|
||||
self.log.error(self.tr("Impossibile aprire il file: {}").format(ee))
|
||||
except Exception as eee:
|
||||
self.log.critical(tr("Eccezione inaspettata: {}").format(eee))
|
||||
self.log.critical(self.tr("Eccezione inaspettata: {}").format(eee))
|
||||
else:
|
||||
self.log.error(tr("Non ho trovato alcun file di configurazione!"))
|
||||
self.log.error(self.tr("Non ho trovato alcun file di configurazione!"))
|
||||
pass
|
||||
|
||||
def reload(self):
|
||||
@@ -60,15 +65,15 @@ class bananaCONF(object):
|
||||
def save(self, fName=None):
|
||||
if fName is None:
|
||||
fName=self.inUse
|
||||
self.log.info(tr("Salvo la configurazione: {}").format(fName))
|
||||
self.log.info(self.tr("Salvo la configurazione: {}").format(fName))
|
||||
try:
|
||||
f=open(fName, 'w')
|
||||
json.dump(self.settingsList[self.inUse], f, indent='\t')
|
||||
f.close()
|
||||
except IOError as e:
|
||||
self.log.error(tr("Impossibile salvare il file: {} - [{}]").format(fName,e))
|
||||
self.log.error(self.tr("Impossibile salvare il file: {} - [{}]").format(fName,e))
|
||||
except Exception as ei:
|
||||
self.log.error(tr("Errore imprevisto nella scrittura del file: {}").format(ei))
|
||||
self.log.error(self.tr("Errore imprevisto nella scrittura del file: {}").format(ei))
|
||||
pass
|
||||
|
||||
def getFiles(self):
|
||||
@@ -81,7 +86,7 @@ class bananaCONF(object):
|
||||
rv = rv[k]
|
||||
return rv
|
||||
except ValueError as ve:
|
||||
self.log.error(tr("Parametro di configurazione non valido! [{}]").format(ve))
|
||||
self.log.error(self.tr("Parametro di configurazione non valido! [{}]").format(ve))
|
||||
return False
|
||||
pass
|
||||
|
||||
@@ -93,7 +98,7 @@ class bananaCONF(object):
|
||||
sv[keys[-1]] = val
|
||||
return True
|
||||
except ValueError as ve:
|
||||
self.log.error(tr("Parametro di configurazione non valido! [{}]").format(ve))
|
||||
self.log.error(self.tr("Parametro di configurazione non valido! [{}]").format(ve))
|
||||
return False
|
||||
pass
|
||||
|
||||
|
||||
@@ -52,6 +52,8 @@ class fancyLogger(QObject):
|
||||
self.LOGGER.addHandler(cl)
|
||||
except IOError as e:
|
||||
print("Impossibile caricare la configurazione del logger: [{}]".format(e))
|
||||
except Exception as ee:
|
||||
print(f"libFancylogger error: {e}")
|
||||
pass
|
||||
|
||||
def debug(self, msg="Undefined Debug"):
|
||||
|
||||
@@ -14,31 +14,34 @@ class bananaSPLITTER(QObject):
|
||||
sendStatus = pyqtSignal(str)
|
||||
|
||||
def __init__(self, fileParams=None, logger=None):
|
||||
QObject.__init__(self)
|
||||
self.fileParams = fileParams
|
||||
self.log = logger
|
||||
self.rawFile = None
|
||||
self.status = "first"
|
||||
self.contentList = list()
|
||||
self.bodyCounter=0
|
||||
self.duplicateNumber=0
|
||||
#self.log.debug(f"Configurazione: \n {json.dumps(fileParams, indent=2)}")
|
||||
if fileParams is not None:
|
||||
self.log.debug(tr("Sto operando sul file: {}..").format(self.fileParams['name']))
|
||||
self.paths = self.fileParams['paths']
|
||||
self.docStruct = self.fileParams['docStruct']
|
||||
self.settings = self.fileParams['settings']
|
||||
self.fileName = self.fileParams['name']
|
||||
self.outPath = self.paths['OUTworkPath']+slugify(self.fileName)+'/'
|
||||
self.beginTime = time.time()
|
||||
pass
|
||||
else:
|
||||
self.log.critical(tr("Non e' stato fornito il nome di alcun file da splittare!"))
|
||||
try:
|
||||
QObject.__init__(self)
|
||||
self.fileParams = fileParams
|
||||
self.log = logger
|
||||
self.rawFile = None
|
||||
self.status = "first"
|
||||
self.contentList = list()
|
||||
self.bodyCounter=0
|
||||
self.duplicateNumber=0
|
||||
#self.log.debug(f"Configurazione: \n {json.dumps(fileParams, indent=2)}")
|
||||
if fileParams is not None:
|
||||
self.log.debug(self.tr("Sto operando sul file: {}..").format(self.fileParams['name']))
|
||||
self.paths = self.fileParams['paths']
|
||||
self.docStruct = self.fileParams['docStruct']
|
||||
self.settings = self.fileParams['settings']
|
||||
self.fileName = self.fileParams['name']
|
||||
self.outPath = self.paths['OUTworkPath']+slugify(self.fileName)+'/'
|
||||
self.beginTime = time.time()
|
||||
pass
|
||||
else:
|
||||
self.log.critical(self.tr("Non e' stato fornito il nome di alcun file da splittare!"))
|
||||
except Exception as e:
|
||||
print(f"libSplit error: {e}")
|
||||
pass
|
||||
|
||||
def run(self):
|
||||
self.log.info(tr("Nuovo SPLITTER su file: {}").format(self.fileName))
|
||||
self.sendStatus.emit(tr(f"Inizio {self.fileName}"))
|
||||
self.log.info(self.tr("Nuovo SPLITTER su file: {}").format(self.fileName))
|
||||
self.sendStatus.emit(self.tr(f"Inizio {self.fileName}"))
|
||||
try:
|
||||
self.openFile()
|
||||
self.remEmptyLines()
|
||||
@@ -48,13 +51,13 @@ class bananaSPLITTER(QObject):
|
||||
self.splitFile()
|
||||
|
||||
if self.settings['removeDuplicates']:
|
||||
self.log.info(tr("Controllo se ci sono dei duplicati.."))
|
||||
self.log.info(self.tr("Controllo se ci sono dei duplicati.."))
|
||||
self.removeDuplicates()
|
||||
else:
|
||||
for idx, ff in enumerate(self.contentList):
|
||||
ff['duplicate']=False
|
||||
self.contentList[idx]=ff
|
||||
self.log.warn(tr("Salto il controllo dei duplicati.."))
|
||||
self.log.warn(self.tr("Salto il controllo dei duplicati.."))
|
||||
# se il parse e la rimozione dei duplicati e' andata bene
|
||||
# preparo e inizio il salvataggio
|
||||
if os.path.exists(self.outPath):
|
||||
@@ -63,7 +66,7 @@ class bananaSPLITTER(QObject):
|
||||
for f in os.listdir(self.outPath):
|
||||
os.remove(self.outPath+f)
|
||||
else:
|
||||
raise FileExistsError(tr("Non posso sovrascrivere i vecchi file, eliminali manualmente!"))
|
||||
raise FileExistsError(self.tr("Non posso sovrascrivere i vecchi file, eliminali manualmente!"))
|
||||
else:
|
||||
os.mkdir(self.outPath)
|
||||
#os.chdir(self.outPath)
|
||||
@@ -71,10 +74,10 @@ class bananaSPLITTER(QObject):
|
||||
self.saveSeparate()
|
||||
if self.settings['saveBodyFile']:
|
||||
self.saveBody()
|
||||
self.log.info(tr("L'elaborazione del file ha richiesto {:4.2f} sec").format(time.time()-self.beginTime))
|
||||
self.log.info(self.tr("L'elaborazione del file ha richiesto {:4.2f} sec").format(time.time()-self.beginTime))
|
||||
|
||||
except UnicodeDecodeError as ee:
|
||||
self.log.critical(tr("Il file [{}] contiene caratteri non compatibili con la codifica scelta! [{}]")
|
||||
self.log.critical(self.tr("Il file [{}] contiene caratteri non compatibili con la codifica scelta! [{}]")
|
||||
.format(self.fileParams['name'],ee))
|
||||
except FileExistsError as fe:
|
||||
self.log.critical(fe)
|
||||
@@ -86,12 +89,12 @@ class bananaSPLITTER(QObject):
|
||||
def openFile(self):
|
||||
try:
|
||||
#os.chdir(self.paths["INworkPath"])
|
||||
self.log.info(tr("Carico il contenuto.."))
|
||||
self.log.info(self.tr("Carico il contenuto.."))
|
||||
fp = open(self.paths["INworkPath"]+'/'+self.fileParams['name'], mode='r', encoding=self.settings['encoding'])
|
||||
self.rawFile = fp.readlines()
|
||||
fp.close()
|
||||
except IOError as e:
|
||||
self.log.critical(tr("Impossibile aprire il file: {}! [{}]").format(self.fileName,e))
|
||||
self.log.critical(self.tr("Impossibile aprire il file: {}! [{}]").format(self.fileName,e))
|
||||
raise BaseException("OpenFile")
|
||||
os.rmdir(self.outPath)
|
||||
except Exception as ee:
|
||||
@@ -99,7 +102,7 @@ class bananaSPLITTER(QObject):
|
||||
pass
|
||||
|
||||
def remEmptyLines(self):
|
||||
self.log.info(tr("Elimino righe vuote e caratteri inutili.."))
|
||||
self.log.info(self.tr("Elimino righe vuote e caratteri inutili.."))
|
||||
tempContent = []
|
||||
try:
|
||||
for ll in self.rawFile:
|
||||
@@ -111,12 +114,12 @@ class bananaSPLITTER(QObject):
|
||||
self.rawFile.append('\n') #linea vuota finale per essere sicuri di parsare bene
|
||||
return True
|
||||
except:
|
||||
self.log.error(tr("Errore inaspettato durante l'eliminazione delle righe vuote!"))
|
||||
self.log.error(self.tr("Errore inaspettato durante l'eliminazione delle righe vuote!"))
|
||||
raise BaseException("DelLines")
|
||||
del tempContent
|
||||
|
||||
def newSplitFile(self): #porting del codice dal programma originale
|
||||
self.log.info(tr("Individuo il contenuto.."))
|
||||
self.log.info(self.tr("Individuo il contenuto.."))
|
||||
self.bodyCounter=0
|
||||
self.duplicateNumber=0
|
||||
docNumber = 0
|
||||
@@ -142,7 +145,7 @@ class bananaSPLITTER(QObject):
|
||||
docDate['month']=self.docStruct['language']['dateWords'].index(docDate['month'])+1
|
||||
# dopo la data inizia il titolo, ma prima si cerca il nome del giornale
|
||||
except:
|
||||
self.log.warn(tr("Ho trovato una riga ambigua.. potrebbe essere una data ma non so: [{}]"). format(l.strip('\r\n')))
|
||||
self.log.warn(self.tr("Ho trovato una riga ambigua.. potrebbe essere una data ma non so: [{}]"). format(l.strip('\r\n')))
|
||||
pass
|
||||
elif lineWords[0].upper() in self.docStruct['language']['headWords']:
|
||||
#cambio stato e inizializzo un nuovo documento da riempire
|
||||
@@ -166,13 +169,13 @@ class bananaSPLITTER(QObject):
|
||||
else:
|
||||
newsPaperName = self.settings['nameNotFoundStr']
|
||||
except:
|
||||
self.log.warn(tr("E' successo qualcosa mentre stavo cercando il nome della pubblicazione,\
|
||||
self.log.warn(self.tr("E' successo qualcosa mentre stavo cercando il nome della pubblicazione,\
|
||||
controlla i file di uscita! [{}]").format(l.strip()))
|
||||
else:
|
||||
newsPaperName = self.settings['nameNotFoundStr']
|
||||
newsName = False
|
||||
except IndexError:
|
||||
self.log.error(tr("Errore inaspettato, contatta il tuo sviluppatore di fiducia!"))
|
||||
self.log.error(self.tr("Errore inaspettato, contatta il tuo sviluppatore di fiducia!"))
|
||||
pass
|
||||
elif self.status == 'head':
|
||||
tempContent = list()
|
||||
@@ -184,7 +187,7 @@ class bananaSPLITTER(QObject):
|
||||
#self.status = 'body'
|
||||
elif self.status == 'body':
|
||||
if re.match(self.docStruct['endOfDocument'],l) is not None: #controlla se ci sono articoli che non hanno le parole chiave finali
|
||||
self.log.warn(tr("Ho individuato una separatore valido prima che si chiusesse l'articolo precedente, controlla i tuoi file in uscita!\n\
|
||||
self.log.warn(self.tr("Ho individuato una separatore valido prima che si chiusesse l'articolo precedente, controlla i tuoi file in uscita!\n\
|
||||
L'errore dovrebbe essere intorno all'articolo {} ma non sono sicuro! \n\t\t\t[{}]").format(docNumber, l.strip()))
|
||||
self.status = 'tail'
|
||||
anomaly = True
|
||||
@@ -211,18 +214,18 @@ class bananaSPLITTER(QObject):
|
||||
self.bodyCounter +=1
|
||||
pass
|
||||
else:
|
||||
self.log.critical(tr("Stato Interno Sconosciuto"))
|
||||
self.log.critical(self.tr("Stato Interno Sconosciuto"))
|
||||
prevLine=l #salva sempre e comunque il contenuto della linea precedente
|
||||
pass
|
||||
#ricerca terminata, espongo i risultati
|
||||
self.log.info(tr("Nel file ho trovato {0} articoli..").format(self.bodyCounter))
|
||||
self.log.info(self.tr("Nel file ho trovato {0} articoli..").format(self.bodyCounter))
|
||||
if docSkipped > 0:
|
||||
self.log.warn(tr("Attentione, LexisNexis ne ha saltati {} !!!").format(docSkipped))
|
||||
self.log.warn(self.tr("Attentione, LexisNexis ne ha saltati {} !!!").format(docSkipped))
|
||||
pass
|
||||
pass
|
||||
|
||||
def splitFile(self): #porting del codice dal programma originale
|
||||
self.log.info(tr("Individuo il contenuto.."))
|
||||
self.log.info(self.tr("Individuo il contenuto.."))
|
||||
self.bodyCounter=0
|
||||
self.duplicateNumber=0
|
||||
docNumber = 0
|
||||
@@ -246,7 +249,7 @@ class bananaSPLITTER(QObject):
|
||||
pass
|
||||
else:
|
||||
if self.settings["showSkipped"]:
|
||||
self.log.warn(tr("Il conto dei documenti non torna! LexisNexis ne ha saltato qualcuno!\n Precedente:{0}-Attuale:{1}").format(docNumber,nn["current"]))
|
||||
self.log.warn(self.tr("Il conto dei documenti non torna! LexisNexis ne ha saltato qualcuno!\n Precedente:{0}-Attuale:{1}").format(docNumber,nn["current"]))
|
||||
docSkipped+=1
|
||||
docNumber = nn["current"]
|
||||
except:
|
||||
@@ -267,12 +270,12 @@ class bananaSPLITTER(QObject):
|
||||
else:
|
||||
newsPaperName = self.settings['nameNotFoundStr']
|
||||
except:
|
||||
self.log.warn(tr("E' successo qualcosa mentre stavo cercando il nome della pubblicazione,\
|
||||
self.log.warn(self.tr("E' successo qualcosa mentre stavo cercando il nome della pubblicazione,\
|
||||
controlla i file di uscita! [{}]").format(prevLine.strip()))
|
||||
else:
|
||||
newsPaperName = self.settings['nameNotFoundStr']
|
||||
except:
|
||||
self.log.warn(tr("Ho trovato una riga ambigua.. potrebbe essere una data ma non so: [{}]").format(l.strip('\r\n')))
|
||||
self.log.warn(self.tr("Ho trovato una riga ambigua.. potrebbe essere una data ma non so: [{}]").format(l.strip('\r\n')))
|
||||
pass
|
||||
elif lineWords[0] in self.docStruct['language']['headWords']:
|
||||
#cambio stato e inizializzo un nuovo documento da riempire
|
||||
@@ -286,7 +289,7 @@ class bananaSPLITTER(QObject):
|
||||
if titleBegin:
|
||||
title += l.strip().capitalize()
|
||||
except IndexError:
|
||||
self.log.error(tr("Errore inaspettato, contatta il tuo sviluppatore di fiducia!"))
|
||||
self.log.error(self.tr("Errore inaspettato, contatta il tuo sviluppatore di fiducia!"))
|
||||
pass
|
||||
elif self.status == 'head':
|
||||
tempContent = list()
|
||||
@@ -304,7 +307,7 @@ class bananaSPLITTER(QObject):
|
||||
self.status = 'tail'
|
||||
anomaly = False
|
||||
if docSep.match(l) is not None: #controlla se ci sono articoli che non hanno le parole chiave finali
|
||||
self.log.warn(tr("Ho individuato una separatore valido prima che si chiusesse l'articolo precedente, controlla i tuoi file in uscita!\n\
|
||||
self.log.warn(self.tr("Ho individuato una separatore valido prima che si chiusesse l'articolo precedente, controlla i tuoi file in uscita!\n\
|
||||
L'errore dovrebbe essere intorno all'articolo {} ma non sono sicuro! \n\t\t[{}]").format(docNumber, l.strip()))
|
||||
self.status = 'tail'
|
||||
anomaly = True
|
||||
@@ -321,13 +324,13 @@ class bananaSPLITTER(QObject):
|
||||
self.bodyCounter +=1
|
||||
pass
|
||||
else:
|
||||
self.log.critical(tr("Stato Interno Sconosciuto"))
|
||||
self.log.critical(self.tr("Stato Interno Sconosciuto"))
|
||||
prevLine=l #salva sempre e comunque il contenuto della linea precedente
|
||||
pass
|
||||
#ricerca terminata, espongo i risultati
|
||||
self.log.info(tr("Nel file ho trovato {0} articoli..").format(self.bodyCounter))
|
||||
self.log.info(self.tr("Nel file ho trovato {0} articoli..").format(self.bodyCounter))
|
||||
if docSkipped > 0:
|
||||
self.log.warn(tr("Attentione, LexisNexis ne ha saltati {} !!!").format(docSkipped))
|
||||
self.log.warn(self.tr("Attentione, LexisNexis ne ha saltati {} !!!").format(docSkipped))
|
||||
pass
|
||||
pass
|
||||
|
||||
@@ -344,18 +347,18 @@ class bananaSPLITTER(QObject):
|
||||
if ff['title'] not in duplicateList:
|
||||
duplicateList.append(ff['title'])
|
||||
if self.settings['showRemovedDuplicates']:
|
||||
self.log.info(tr("Duplicato: {}").format(ff['title'].strip()))
|
||||
self.log.info(self.tr("Duplicato: {}").format(ff['title'].strip()))
|
||||
ff['duplicate'] = True
|
||||
self.contentList[idx]=ff
|
||||
self.duplicateNumber+=1
|
||||
self.log.info(tr("Ho rimosso {} duplicati di {} articoli..").format(self.duplicateNumber, len(duplicateList)))
|
||||
self.log.info(self.tr("Ho rimosso {} duplicati di {} articoli..").format(self.duplicateNumber, len(duplicateList)))
|
||||
pass
|
||||
|
||||
def saveSeparate(self):
|
||||
outFileCounter = 0
|
||||
self.paths['OUTworkPath']=self.paths['OUTworkPath']+slugify(self.fileName)
|
||||
self.log.info(tr("Salvo gli articoli in file separati..."))
|
||||
self.log.debug(tr("Persorso: {0}").format(self.outPath))
|
||||
self.log.info(self.tr("Salvo gli articoli in file separati..."))
|
||||
self.log.debug(self.tr("Persorso: {0}").format(self.outPath))
|
||||
for ff in self.contentList:
|
||||
try:
|
||||
if ff['duplicate'] == False:
|
||||
@@ -371,20 +374,20 @@ class bananaSPLITTER(QObject):
|
||||
out.close()
|
||||
outFileCounter+=1
|
||||
except IOError as e:
|
||||
self.log.error(tr("Qualcosa e\' andato storto, non riesco a scrivere il file: {}").format(e))
|
||||
self.log.error(self.tr("Qualcosa e\' andato storto, non riesco a scrivere il file: {}").format(e))
|
||||
continue
|
||||
except KeyError as ke:
|
||||
self.log.error(tr(f"Chiave {ke} non trovata per:{outFileCounter} {ff['title']} "))
|
||||
self.log.error(self.tr(f"Chiave {ke} non trovata per:{outFileCounter} {ff['title']} "))
|
||||
except Exception as ee:
|
||||
traceback.print_exc()
|
||||
self.log.error(tr(f"Errore generale nel salvataggio: {ee}"))
|
||||
self.log.error(self.tr(f"Errore generale nel salvataggio: {ee}"))
|
||||
if outFileCounter < self.bodyCounter:
|
||||
self.log.error(tr("Ho salvato meno file rispetto a quelli trovati!"))
|
||||
self.log.error(self.tr("Ho salvato meno file rispetto a quelli trovati!"))
|
||||
pass
|
||||
|
||||
def saveBody(self):
|
||||
self.log.info(tr('Salvo gli articoli in un singolo file vicino agli originali...'))
|
||||
self.log.debug(tr('Persorso: {0}').format(self.outPath))
|
||||
self.log.info(self.tr('Salvo gli articoli in un singolo file vicino agli originali...'))
|
||||
self.log.debug(self.tr('Persorso: {0}').format(self.outPath))
|
||||
#os.chdir(self.outPath)
|
||||
try:
|
||||
fName=slugify(self.fileName)
|
||||
@@ -394,9 +397,9 @@ class bananaSPLITTER(QObject):
|
||||
out.write(fileContent.encode(self.settings['encoding']))
|
||||
out.close()
|
||||
except IOError as e:
|
||||
self.log.error(tr("Qualcosa e\' andato storto, non riesco a scrivere il file: {}").format(e))
|
||||
self.log.error(self.tr("Qualcosa e\' andato storto, non riesco a scrivere il file: {}").format(e))
|
||||
except Exception as ee:
|
||||
self.log.error(tr(f"Errore generale nel salvataggio: {ee}"))
|
||||
self.log.error(self.tr(f"Errore generale nel salvataggio: {ee}"))
|
||||
pass
|
||||
|
||||
|
||||
|
||||
BIN
bananaSPLIT/logo.ico
Normal file
BIN
bananaSPLIT/logo.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
@@ -5,20 +5,29 @@ Created on 24 nov 2019
|
||||
'''
|
||||
import os, glob, subprocess
|
||||
|
||||
if __name__ == '__main__':
|
||||
print(os.getcwd())
|
||||
def updateInterfaces():
|
||||
uifiles = glob.glob("*.ui")
|
||||
for f in uifiles:
|
||||
command = r"pyuic5.exe "+f
|
||||
print(command)
|
||||
rv = subprocess.run(command, capture_output=True)
|
||||
fp = open(r".\compiledUI\\"+f.replace("ui","py"), 'w')
|
||||
fp = open(r".\\CompiledUI\\"+f.replace("ui","py"), 'w')
|
||||
fp.write(str(rv.stdout, encoding='utf-8').replace('\r', ''))
|
||||
fp.close()
|
||||
command = r'pyrcc5.exe '+'resources/resources.qrc'
|
||||
|
||||
def updateResources():
|
||||
command = r'pyrcc5.exe '+'.\\resources\\resources.qrc'
|
||||
print (command)
|
||||
rv = subprocess.run(command, capture_output=True)
|
||||
fp = open(r".\compiledUI\\resources_rc.py", 'w')
|
||||
fp = open(r".\\compiledUI\\resources_rc.py", 'w')
|
||||
fp.write(str(rv.stdout, encoding='utf-8').replace('\r', ''))
|
||||
fp.close()
|
||||
|
||||
if __name__ == '__main__':
|
||||
os.chdir("..\\UserInterface")
|
||||
print(os.getcwd())
|
||||
updateInterfaces()
|
||||
updateResources()
|
||||
|
||||
|
||||
pass
|
||||
18
bananaSPLIT/scripts/releaseLanguages.py
Normal file
18
bananaSPLIT/scripts/releaseLanguages.py
Normal file
@@ -0,0 +1,18 @@
|
||||
'''
|
||||
Created on 10 apr 2020
|
||||
|
||||
@author: Emanuele Trabattoni
|
||||
'''
|
||||
import os,glob
|
||||
import subprocess
|
||||
from bananaSPLIT.scripts.compileUI import updateResources
|
||||
|
||||
if __name__ == '__main__':
|
||||
tsfiles = glob.glob("..\\UserInterface\\resources\\translations\\*.ts")
|
||||
for ts in tsfiles:
|
||||
tso = "..\\UserInterface\\resources\\translations\\"+os.path.splitext((os.path.split(ts)[1]))[0]+".qm"
|
||||
subprocess.run(f'lrelease.exe {ts} -qm {tso}')
|
||||
os.chdir("..\\UserInterface")
|
||||
#print(os.getcwd())
|
||||
#updateResources()
|
||||
pass
|
||||
20
bananaSPLIT/scripts/updateLanguages.py
Normal file
20
bananaSPLIT/scripts/updateLanguages.py
Normal file
@@ -0,0 +1,20 @@
|
||||
'''
|
||||
Created on 10 apr 2020
|
||||
|
||||
@author: Emanuele Trabattoni
|
||||
'''
|
||||
import os,glob
|
||||
import subprocess
|
||||
langs = ["en"]
|
||||
|
||||
if __name__ == '__main__':
|
||||
uifiles = glob.glob("..\\*\\*.ui", recursive=True)
|
||||
pyfiles = ['..\\guimain.py','..\\libbananasplit\\libsplit.py','..\\libbananasplit\\libconfload.py']
|
||||
for l in langs:
|
||||
for ui in uifiles:
|
||||
uio = "..\\UserInterface\\resources\\translations\\"+os.path.splitext((os.path.split(ui)[1]))[0]+f"_{l}.ts"
|
||||
subprocess.run(f'lupdate.exe {ui} -ts {uio}')
|
||||
for py in pyfiles:
|
||||
pyo = "..\\UserInterface\\resources\\translations\\"+os.path.splitext((os.path.split(py)[1]))[0]+f"_{l}.ts"
|
||||
print(subprocess.run(f'pylupdate5.exe {py} -ts {pyo}'))
|
||||
pass
|
||||
Reference in New Issue
Block a user