Pannello di Controllo Moderatore ]

Traduttore python

Creare una macro - Scrivere uno script - Usare le API

Traduttore python

Messaggioda patel » venerdì 12 aprile 2019, 15:48

In attesa di una sezione specifica e in risposta a vlad, propongo un miglioramento del codice postato nella discussione di chimico
Codice: Seleziona tutto   Espandi visualeStringi visuale
import urllib.request as opener
import xml.etree.ElementTree as ET
url = "https://translate.yandex.net/api/v1.5/tr/translate?"
key = "key=trnsl.1.1.20190301T033325Z.3123d02da7588646.c71d99028a980e1ea7bdfdbe1a428dc44fc81f3b"
target = 'home' #str(input("Inserisci la parola in inglese: "))
txt = "text=" + target
lang = "lang=en-it"
frmt = "format=plain"
full_url = "&".join([url + key, txt, lang, frmt])
# make request to Yandex Translator
answer = opener.urlopen(full_url)
# reading and decoding answer
decode = answer.read().decode()
dd = ET.fromstring(decode)
print(dd[0].text)

Però un grosso difetto di questo metodo è che traduce solo parole singole e non frasi, si potrebbe fare meglio usando la libreria googletrans, su python si installa con pip, ma come si fa a installarla su Libre ?
-------------------
OpenOffice 4.1 e Libre Office 6.o.7.3 su Windows 10
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
patel
Volontario attivo
Volontario attivo
 
Messaggi: 3158
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Traduttore python

Messaggioda hubert lambert » sabato 13 aprile 2019, 18:23

Ciao patel,

Ho fatto qualche prove (con LibreOffice) per installare googletrans: è un po' pesante.
Dove verrà registrata la macro (per sempio nel repertorio <utente>/Scripts/python), si deve creare il repertorio pythonpath e copiarvi a mano le seguente librerie: googletrans, certifi, requests, urllib3, chardet e idna (dal repertorio system di python se googletrans è già installato, oppure dal sito https://pypi.org: scaricare il file tar.gz corrispondente, decomprimerlo e estrare il repertorio con il nome della libreria).
La libreria hyper è opzionale, ma rende le traduzioni più veloce (secondo la documentazione).
Avvertimento utile: https://pypi.org/project/googletrans/#n ... rary-usage.

Una volta fatto, diventa molto semplice:
Codice: Seleziona tutto   Espandi visualeStringi visuale
def gtrans(event=None):
    from googletrans import Translator
    translator 
= Translator()
    testo = 'Un chaleureux bonjour à la communauté italienne !'
    T = translator.translate(testo, dest='it')
    msgbox(T.text)

Cordiali saluti.
OpenOffice 4.1.2/4.1.4 | LibreOffice 5.4.4/6.0
Win7 + LinuxMint
hubert lambert
Volontario
Volontario
 
Messaggi: 141
Iscritto il: venerdì 9 giugno 2017, 13:48

Re: Traduttore python

Messaggioda patel » sabato 13 aprile 2019, 19:14

hubert lambert ha scritto:Dove verrà registrata la macro (per sempio nel repertorio <utente>/Scripts/python), si deve creare il repertorio pythonpath e copiarvi a mano le seguente librerie:
Grazie Hubert, uso win e non trovo questo percorso, potresti essere più preciso ?
ho provato a fare quanto hai detto, ma ottengo questo errore
Errore dello schema di scripting durante l'esecuzione dello script Python vnd.sun.star.script:Modulo1.py$prova?language=Python&location=document.

Messaggio: <class 'ImportError'>: No module named 'googletrans' (or 'googletrans.Translator' is unknown)
File "C:\Program Files\LibreOffice\program\pythonscript.py", line 1047, in getScript
mod = self.provCtx.getModuleByUrl( fileUri )
File "C:\Program Files\LibreOffice\program\pythonscript.py", line 484, in getModuleByUrl
exec(code, entry.module.__dict__)
File "vnd.sun.star.tdoc:/2/Scripts/python/Modulo1.py", line 5, in <module>
File "C:\Program Files\LibreOffice\program\uno.py", line 425, in _uno_import
raise uno_import_exc
File "C:\Program Files\LibreOffice\program\uno.py", line 347, in _uno_import
return _builtin_import(name, *optargs, **kwargs)
-------------------
OpenOffice 4.1 e Libre Office 6.o.7.3 su Windows 10
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
patel
Volontario attivo
Volontario attivo
 
Messaggi: 3158
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Traduttore python

Messaggioda hubert lambert » sabato 13 aprile 2019, 21:20

Su Windows, il profilo utente è %APPDATA%\libreoffice\4\user (vedi qui).
In %APPDATA%\libreoffice\4\user\Scripts\python si trovano gli script python definiti dall'utente (quelli di "Macro personali").
In %APPDATA%\libreoffice\4\user\Scripts\python\pythonpath vanno le librerie, visibili soltanto da quelli script (uno script in un documento non può importare quelle librerie!).
Qui puoi scaricare un zip con un script di esempio e con le librerie necessarie, da decomprimere in %APPDATA%\libreoffice\4\user\Scripts\python. Da Strumenti -> Macro -> Esegui macro -> Macro personali -> patel, esegui la macro "gtrans".
OpenOffice 4.1.2/4.1.4 | LibreOffice 5.4.4/6.0
Win7 + LinuxMint
hubert lambert
Volontario
Volontario
 
Messaggi: 141
Iscritto il: venerdì 9 giugno 2017, 13:48

Re: Traduttore python

Messaggioda patel » domenica 14 aprile 2019, 9:55

Grazie Hubert, ma mi sembra troppo complicato, in questo modo la macro funzionerà soltanto nel mio pc e non potrò mai condividere il file ods con altri
-------------------
OpenOffice 4.1 e Libre Office 6.o.7.3 su Windows 10
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
patel
Volontario attivo
Volontario attivo
 
Messaggi: 3158
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Traduttore python

Messaggioda hubert lambert » domenica 14 aprile 2019, 11:07

Sembra la stessa cosa anche a me ;).
Ci sono già alcune estensioni sul sito di LibreOffice.
OpenOffice 4.1.2/4.1.4 | LibreOffice 5.4.4/6.0
Win7 + LinuxMint
hubert lambert
Volontario
Volontario
 
Messaggi: 141
Iscritto il: venerdì 9 giugno 2017, 13:48

Re: Traduttore python

Messaggioda patel » domenica 14 aprile 2019, 11:31

Non è importante per me avere il traduttore su libre, cercavo di capire se vale la pena imparare a programmare in python su calc e per il momento ho dei dubbi, vedi anche la discussione viewtopic.php?f=26&t=9769
-------------------
OpenOffice 4.1 e Libre Office 6.o.7.3 su Windows 10
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
patel
Volontario attivo
Volontario attivo
 
Messaggi: 3158
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Traduttore python

Messaggioda hubert lambert » lunedì 15 aprile 2019, 16:20

Basic è un linguaggio facile ma arcaico, mentre python è un linguaggio moderno, ricco di numerose librerie fornite di default (cioè senza dover aggiungere nulla).
Il problema di un progetto di traduzione automatica è molto particolare e certamente non rappresentativo della codifica con python.

Ci sono tre difficoltà principali per iniziare con python:
- nessun IDE integrato, ma APSO facilita notevolmente le cose;
- python è molto meno tollerante: le rientranze definiscono i blocchi e le funzioni, proprietà e variabili devono rispettare scrupolosamente le maiuscole e minuscole (minore rischio di errori in python quindi);
- le scorciatoie specifiche del basic non esistono, quindi è necessario ricrearle (createUnoService, MsgBox, ecc.).

Per iniziare bene:
- una volta installato APSO, compila le opzioni (Strumenti -> Gestione estensioni -> APSO -> Opzioni) con il percorso del tuo IDE preferito e con le opzioni di apertura (cioè per aprire una funzione direttamente sulla linea corretta). Esempio con notepad ++: -n {ROW} -c {COL} {FILENAME};
- leggere attentamente questa pagina: https://wiki.openoffice.org/wiki/Python ... to_Python;
- eseguire alcuni test con gli script python forniti da LibreOffice (Macro → Macro di LibreOffice).

Avviso per APSO.
APSO ti consente di modificare direttamente le macro incorporate in un documento, ma non è raccomandato. È meglio lavorare in "Macro personali" e, una volta le macro complete, incorporare il file nel documento (APSO → Menu → Copia in documento).
Allegati
esempiopy.ods
Piccolissimo esempio
(11.02 KiB) Scaricato 6 volte
OpenOffice 4.1.2/4.1.4 | LibreOffice 5.4.4/6.0
Win7 + LinuxMint
hubert lambert
Volontario
Volontario
 
Messaggi: 141
Iscritto il: venerdì 9 giugno 2017, 13:48

Re: Traduttore python

Messaggioda patel » martedì 16 aprile 2019, 9:30

grazie Hubert, ora è tutto un po' più chiaro
-------------------
OpenOffice 4.1 e Libre Office 6.o.7.3 su Windows 10
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
patel
Volontario attivo
Volontario attivo
 
Messaggi: 3158
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno


Torna a Macro e UNO API

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti