aggiornati script anche per tradurre messaggi python
This commit is contained in:
@@ -285,7 +285,7 @@ class Ui_mainwin(object):
|
||||
self.txt_log.setHtml(_translate("mainwin", "<!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:6.6pt; font-weight:400; font-style:normal;\">\n"
|
||||
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:7.8pt; font-weight:400; font-style:normal;\">\n"
|
||||
"<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>"))
|
||||
self.btn_cartellasorg.setText(_translate("mainwin", "-> "))
|
||||
self.btn_cartelladest.setText(_translate("mainwin", "-> "))
|
||||
|
||||
@@ -149,7 +149,7 @@
|
||||
<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:6.6pt; font-weight:400; font-style:normal;">
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; 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></string>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
|
||||
@@ -19,5 +19,14 @@
|
||||
</qresource>
|
||||
<qresource prefix="tr">
|
||||
<file>translations/mainwindow_en.qm</file>
|
||||
<file>translations/about_en.qm</file>
|
||||
<file>translations/advopt_en.qm</file>
|
||||
<file>translations/avanzatetitolo_en.qm</file>
|
||||
<file>translations/avanzatetitolo2_en.qm</file>
|
||||
<file>translations/avanzatetitolo3_en.qm</file>
|
||||
<file>translations/guimain.qm</file>
|
||||
<file>translations/mainwindow_en.qm</file>
|
||||
<file>translations/selezout_en.qm</file>
|
||||
<file>translations/titolow_en.qm</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
<クdハ<>箆!ソ`。スン
|
||||
161
bananaSPLIT/UserInterface/resources/translations/guimain_en.ts
Normal file
161
bananaSPLIT/UserInterface/resources/translations/guimain_en.ts
Normal file
@@ -0,0 +1,161 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS><TS version="2.0">
|
||||
<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>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="151"/>
|
||||
<source>Apri Opzioni Avanzate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="157"/>
|
||||
<source>Apri Opzioni Lingua</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="161"/>
|
||||
<source>Apri Finestra About</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="165"/>
|
||||
<source>Seleziona Cartella Sorgente</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="169"/>
|
||||
<source>Selezionata Cartella Sorgente: {}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="174"/>
|
||||
<source>Seleziona Cartella Destinazione</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="178"/>
|
||||
<source>Selezionata Cartella Destinazione: {}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="186"/>
|
||||
<source>Apro in directory: {}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="241"/>
|
||||
<source>Titolo: Configurazione non accettata</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="244"/>
|
||||
<source>Mostro la finestra avanzate titolo</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="249"/>
|
||||
<source>Applico impostazioni Titolo</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="306"/>
|
||||
<source>AvanzateTitolo: Configurazione non accettata</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="360"/>
|
||||
<source>Avanzate Titolo Accettate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="366"/>
|
||||
<source>Avanzate Titolo Rifiutate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="431"/>
|
||||
<source>SelezUscita: Configurazione non accettata</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="435"/>
|
||||
<source>Applico Impostazioni File Uscita</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="475"/>
|
||||
<source>Sto SPLITTANDO, attendi..</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="476"/>
|
||||
<source>Sto Splittando..</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="495"/>
|
||||
<source>FINITO!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="519"/>
|
||||
<source>AdvancedOptions: Configurazione non accettata</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="525"/>
|
||||
<source>Avanzate Globali</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../guimain.py" line="533"/>
|
||||
<source>Parametri inseriti validi, configurazione accettata</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
@@ -0,0 +1 @@
|
||||
<クdハ<>箆!ソ`。スン
|
||||
@@ -0,0 +1,67 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS><TS version="2.0">
|
||||
<context>
|
||||
<name>@default</name>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libconfload.py" line="21"/>
|
||||
<source>Cerco le configurazioni in: [{}]</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libconfload.py" line="23"/>
|
||||
<source>Non mi e' stata fornita una directory per i file di configurazione</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libconfload.py" line="27"/>
|
||||
<source>Carico i file di configurazione</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libconfload.py" line="36"/>
|
||||
<source>Caricato correttamente: {}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libconfload.py" line="39"/>
|
||||
<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 type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libconfload.py" line="42"/>
|
||||
<source>Impossibile aprire il file: {}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libconfload.py" line="44"/>
|
||||
<source>Eccezione inaspettata: {}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libconfload.py" line="46"/>
|
||||
<source>Non ho trovato alcun file di configurazione!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libconfload.py" line="63"/>
|
||||
<source>Salvo la configurazione: {}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libconfload.py" line="69"/>
|
||||
<source>Impossibile salvare il file: {} - [{}]</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libconfload.py" line="71"/>
|
||||
<source>Errore imprevisto nella scrittura del file: {}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libconfload.py" line="96"/>
|
||||
<source>Parametro di configurazione non valido! [{}]</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
@@ -0,0 +1 @@
|
||||
<クdハ<>箆!ソ`。スン
|
||||
156
bananaSPLIT/UserInterface/resources/translations/libsplit_en.ts
Normal file
156
bananaSPLIT/UserInterface/resources/translations/libsplit_en.ts
Normal file
@@ -0,0 +1,156 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS><TS version="2.0">
|
||||
<context>
|
||||
<name>@default</name>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="27"/>
|
||||
<source>Sto operando sul file: {}..</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="36"/>
|
||||
<source>Non e' stato fornito il nome di alcun file da splittare!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="40"/>
|
||||
<source>Nuovo SPLITTER su file: {}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="51"/>
|
||||
<source>Controllo se ci sono dei duplicati..</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="57"/>
|
||||
<source>Salto il controllo dei duplicati..</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="66"/>
|
||||
<source>Non posso sovrascrivere i vecchi file, eliminali manualmente!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="74"/>
|
||||
<source>L'elaborazione del file ha richiesto {:4.2f} sec</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="77"/>
|
||||
<source>Il file [{}] contiene caratteri non compatibili con la codifica scelta! [{}]</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="89"/>
|
||||
<source>Carico il contenuto..</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="94"/>
|
||||
<source>Impossibile aprire il file: {}! [{}]</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="102"/>
|
||||
<source>Elimino righe vuote e caratteri inutili..</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="114"/>
|
||||
<source>Errore inaspettato durante l'eliminazione delle righe vuote!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="225"/>
|
||||
<source>Individuo il contenuto..</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="275"/>
|
||||
<source>Ho trovato una riga ambigua.. potrebbe essere una data ma non so: [{}]</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="270"/>
|
||||
<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 type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="289"/>
|
||||
<source>Errore inaspettato, contatta il tuo sviluppatore di fiducia!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="187"/>
|
||||
<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 type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="324"/>
|
||||
<source>Stato Interno Sconosciuto</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="328"/>
|
||||
<source>Nel file ho trovato {0} articoli..</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="330"/>
|
||||
<source>Attentione, LexisNexis ne ha saltati {} !!!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="249"/>
|
||||
<source>Il conto dei documenti non torna! LexisNexis ne ha saltato qualcuno!
|
||||
Precedente:{0}-Attuale:{1}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="307"/>
|
||||
<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 type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="347"/>
|
||||
<source>Duplicato: {}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="351"/>
|
||||
<source>Ho rimosso {} duplicati di {} articoli..</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="357"/>
|
||||
<source>Salvo gli articoli in file separati...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="387"/>
|
||||
<source>Persorso: {0}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="397"/>
|
||||
<source>Qualcosa e' andato storto, non riesco a scrivere il file: {}</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="382"/>
|
||||
<source>Ho salvato meno file rispetto a quelli trovati!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../libbananasplit/libsplit.py" line="386"/>
|
||||
<source>Salvo gli articoli in un singolo file vicino agli originali...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
@@ -30,7 +30,7 @@
|
||||
<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;">
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:7.8pt; 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>
|
||||
|
||||
@@ -5,7 +5,6 @@ Created on 10 apr 2020
|
||||
'''
|
||||
import os,glob
|
||||
import subprocess
|
||||
langs = ["en"]
|
||||
|
||||
if __name__ == '__main__':
|
||||
tsfiles = glob.glob("..\\UserInterface\\resources\\translations\\*.ts")
|
||||
|
||||
@@ -9,8 +9,12 @@ 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