Guida verificata con Ubuntu: 20.04 22.04 24.04
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
Linguist è un editor specializzato per elaborare i file con estensione .ts. Questi file vengono usati per la traduzione di applicazioni e programmi per i quali sia disponibile il supporto Qt.
In questa guida, sostituire sempre a «nomepacchetto» il nome del pacchetto da tradurre, a «nomelingua» il nome inglese della lingua e a «sigla» la sigla della lingua.
Non sempre il nome del pacchetto da tradurre segue la sintassi nomepacchetto_sigla.qm. Per evitare errori, leggere e prendere nota di come sono nominati i pacchetti traduzione del programma nelle altre lingue, adoperando quindi la stessa sintassi.
Installazione
A seconda delle proprie esigenze e rilascio di Ubuntu in uso, installare i pacchetti:
linguist-qt6 e qt6-l10n-tools per applicazioni Qt6 (rilasci da 24.04);
[[apt://qttools5-dev-tools | qttools5-dev-tools ] per applicazioni Qt5 nei rilasci fino a 22.04.
Fino al rilascio 22.04 è predefinita l'installazione della suite Qt5; dal rilascio 24.04 è predefinita l'installlazione della suite Qt6.
Uso con Qt4
La versione Qt4 non è più supportata e non riceve più aggiornamenti. Non è raccomandato d'essere usata in produzione, ma solo allo scopo di usare driver non aggiornati per dispositivi antiquati, come stampanti, schede videografiche, ecc., nel caso non esistano alternative più recenti supportate.
L'applicazione Linguist basata sulla versione Qt4 non è più disponibile nei repository ufficiali, ma solo tramite il PPA ubuntuhandbooky per le release di Ubuntu 20.04 e 22.04.
Aggiungendo il suddetto ppa, è possibile che venga notificata la disponibilità di versioni più recenti dei pacchetti dipendenze del driver già installati, nonché la disponibilità di scaricare ulteriori pacchetti consigliati dal driver.
Installare il ppa dedicato digitando nel terminale il comando:
sudo add-apt-repository ppa:ubuntuhandbook1/ppa
Installare i pacchetti qt4-dev-tools qt4-linguist-tools qt4-designer.
Preliminari
Se assente, in Ubuntu e derivate, escluso Kubuntu e Lubuntu, installare il pacchetto synaptic, un gestore pacchetti che verrà utilizzato per reperire i file .ts e .qm relativi alle traduzioni nei successivi passaggi.
In Kubuntu e in Lubuntu è preinstallato il gestore pacchetti Muon, che svolge le stesse funzioni ma con nomi differenti.
Per aiutarsi nelle traduzioni, può venire utile usare dei dizionari di traduzione installati sul computer, consultabili tramite il programma Stardict.
Trovare i file .ts e azzerare la traduzione
I file con estensione .ts possono essere trovati:
se installati, nelle cartelle dei singoli programmi come file .qm da convertire in .ts.
nei file distribuiti con il codice sorgente.
Per agevolare il lavoro si consiglia di mantenere ordinata la propria Home creando un'apposita cartella dedicata alle traduzioni.
Programmi installati
I file delle traduzioni dei pacchetti installati nel sistema sono in formato .qm e devono pertanto essere convertiti in .ts. Per cercarli nel file system nella propria o altra lingua e convertirli in .ts, seguire questi passaggi:
Ubuntu e derivate (escluso Kubuntu)
Avviare il programma Synaptic e cercare il pacchetto desiderato.
Fare clic sul nome del pacchetto e selezionare la scheda File installati.
Leggere e appuntarsi il percorso ai file con estensione .qm. Se non sono presenti file con questa estensione, saltare al seguente paragrafo.
Kubuntu e Lubuntu
Avviare il programma Muon e cercare il pacchetto desiderato.
Fare clic sul nome del pacchetto per far apparire la schermata inferiore e selezionare la scheda File installati.
Leggere e appuntarsi il percorso ai file con estensione .qm. Se non sono presenti file con questa estensione, saltare al seguente paragrafo.
Convertire il file .qm in .ts
Avviare il file manager al percorso individuato nel punto precedente, poi copiare il file nomepacchetto_sigla.qm nella propria Home.
Spostarsi tramite riga di comando nella cartella dove è stato copiato il file.
Convertire il file .qm in file .ts e azzerare la traduzione digitando nel terminale il seguente comando:
lconvert --drop-translations nomepacchetto_sigla.qm -o nomepacchetto_untranslated.ts
Da sorgente
Per trovare il file nomepacchetto_untranslated.ts nei sorgenti nei repository, seguire i seguenti passaggi:
Ubuntu e derivate basate su librerie GTK
Per individuare nome e versione della sorgente leggere la seguente pagina.
Kubuntu e derivate basate su librerie Qt
Per individuare nome e versione della sorgente leggere la seguente pagina.
Ad esempio, il pacchetto qpdfview si trova nella cartella qpdfview del repository Universe e l'ultima versione disponibile è la 0.4.18-6. Appuntarsi pertanto Universe come repository, qpdfview come componente e 0.4.18-6 come versione.
Cercare e scaricare i sorgenti da questa pagina, avendo cura di:
selezionare il componente corretto (all'interno i file sono divisi in directory in ordine alfabetico);
I nomi dei sorgenti delle librerie che iniziano con «lib» vanno cercati nelle corrispondenti voci «lib» del repository.
- selezionare la versione corretta;
scaricare il file compresso:
nomepacchetto_versione.orig.<estensione>, se disponibile. Ignorare eventuali caratteri a destra del segno «-» in versione.
nomepacchetto_versione.<estensione>, altrimenti.
dove al posto di versione va considerata la versione individuata nei punti precedenti.
Ad esempio, per il pacchetto qpdfview di cui al suggerimento precedente scaricare il file qpdfview_0.4.18.orig.tar.gz.
Estrarre il contenuto dei file scaricati nella propria Home e individuare la cartella, solitamente di nome lang o translations, spesso allocate all'interno della cartella genitore src, contenente il file nomepacchetto_untranslated.ts. Se non è presente alcun file con questo nome, seguire i seguenti passaggi:
Copiare nella propria Home il file di traduzione nomepacchetto_sigla.ts in una lingua diversa da quella in cui si intende tradurre, scegliendo quella con più stringhe da tradurre.
Spostarsi tramite riga di comando nella cartella dove è stato copiato il file.
Per azzerare la traduzione digitare nel terminale il seguente comando:
lconvert --drop-translations nomepacchetto_sigla.ts -o nomepacchetto_untranslated.ts
Nei sorgenti molto grandi, o con più file .ts da tradurre, può risultare difficile individuare la cartella, o le cartelle, in cui sono allocati i file da tradurre .ts. In questo caso spostarsi tramite riga di comando nella cartella ove estratto il sorgente e digitare il seguente comando:
find . -type f -name '*.ts'
Seguire ciascun percorso ed estrarre da ciascuno il rispettivo file nomepacchetto_untranslated.ts. Se non è presente alcun file con questo nome, seguire le istruzioni dei seguenti passaggi.
Mancanza di stringhe da tradurre
Se dopo aver installato il file tradotto nomepacchetto_sigla.ts nel sistema, avviando il programma venissero a mancare delle traduzioni, può essere utile provare a creare un file nomepacchetto_untranslated.ts direttamente dal sorgente, poiché in talora i file traduzione non sono al passo con lo sviluppo del programma.
Per creare il file nomepacchetto_untranslated.ts, dopo aver decompresso il sorgente come spiegato al paragrafo precedente, occorre spostarsi nella cartella genitore e dare il seguente comando:
lupdate nomesorgente-versione -ts nomepacchetto_untranslated.ts
Ad esempio, per il pacchetto qpdfview di cui al suggerimento precedente il comando diventa: lupdate qpdfview_0.4.18 -ts qpdfview_untranslated.ts
Primo avvio
Aprire il terminale e digitare il seguente comando:
linguist
Fare clic su Phrases → Open Phrase Book... e selezionare il file .qph del dizionario della lingua verso cui si intende tradurre, allocato nel percorso:
/usr/share/qt4/phrasebooks per applicazioni in Qt4.
/usr/share/qt5/phrasebooks per applicazioni in Qt5.
Per usare le proprie traduzioni per tradurre più applicazioni usando Qt Linguist, copiare il file dizionario nomelingua.qph in una apposita cartella creata e locata nella propria Home e selezionare il dizionario in questa locazione.
Ad esempio, se si è creata una cartella di nome Dictionary, il percorso sarà /home/nomeutente/Dictionary/nomelingua.qph, sostituendo «nomeutente» con quello usato.
Tradurre con Linguist
Avviare il file manager e spostarsi nella cartella contenente il file nomeprogramma_untranslated.ts precedentemente trovato o creato.
Fare clic su nomeprogramma_untranslated.ts per avviare Linguist.
Nella finestra apertasi in automatico selezionare nella sezione Target language le opzioni:
Language → nomelingua, sostituendo a nomelingua la lingua verso cui si vuole tradurre;
Country/Region → nomeregione, sostituendo a nomeregione la regione desiderata.
Nel caso in cui non venga mostrata la finestra per le impostazioni della lingua, fare clic su Edit → Translations File Settings... per visualizzarla.
Per prendere confidenza con l'editor, si può fare pratica traducendo il file linguist_sigla.qm allocato nel percorso /usr/share/qtx/translations/, con «x» da sostituire col numero di versione del Qt usato.
Selezionare View → Views e mettere la spunta su Context, Strings e Phrases and guesses.
Selezionare Validation e mettere la spunta su Accelerations, Ending Punctuation e Place Marker Match.
Selezionare Edit → Batch Translations... e mettere la spunta sulle tre opzioni in alto, raggruppate in Options. Fare clic su Run e chiudere la finestra facendo clic su Cancel.
Selezionare il gruppo di stringhe che si vuole tradurre in Context e selezionare la riga da tradurre in Strings.
Digitare la traduzione in nomelingua translation, poi fare clic su Ctrl + Enter, dove al posto di nomelingua sarà visualizzato il nome della lingua verso cui si sta traducendo.
Se si è allocato il file dizionario nomelingua.qph nella propria Home, dopo ogni traduzione fare clic su Ctrl + T in modo da aggiungere la traduzione al dizionario.
Finita la traduzione, per salvare il file in formato .ts fare clic su File → Save As....
- Nella finestra apertasi selezionare:
in Filter il Qt translation sources;
in Name sostituire il 'untranslated' con la sigla della lingua;
infine premere Save.
Per creare il file .qm selezionare File → Release As....
- Nella finestra apertasi selezionare:
in Filter il Qt message file for released applications
infine premere Save.
Allocazione delle traduzioni
Per controllare il percorso di allocazione delle traduzioni in formato .qm del software che si sta traducendo, seguire i seguenti passaggi:
Avviare il programma Synaptic e cercare il pacchetto desiderato.
Fare clic destro sul nome del pacchetto per aprire il menu contestuale. Selezionare la voce Proprietà e quindi la scheda File installati.
Leggere e appuntarsi il percorso ai file .qm. Se non sono presenti file con tale estensione:
se la cartella /usr/share/nomeprogramma/translations esiste, procedere con i passi successivi della guida;
se la cartella /usr/share/nomeprogramma/translations non esiste, crearla digitando nel terminale i seguenti comandi:
sudo mkdir -p /usr/share/nomeprogramma/translations
Per evitare che un aggiornamento cancelli le traduzioni è consigliabile allocare i file tradotti in /usr/local e creare un collegamento simbolico alla directory richiesta, spostando l'eventuale file .qm preesistente come backup. Per farlo, digitare nel terminale i seguenti comandi:
I comandi seguenti sono riferiti all'allocazione più comune, ovvero /usr/share/nomeprogramma/translations. Se l'allocazione delle traduzioni individuata nei punti precedenti fosse diversa modificare di conseguenza i passi successivi.
Se presente, spostare il file .qm preesistente:
sudo mv /usr/share/nomeprogramma/translations/nomeprogramma_sigla.qm /usr/share/nomeprogramma/translations/nomeprogramma_sigla.qm~
Creare la directory dove allocare:
sudo mkdir -p /usr/local/share/nomeprogramma/translations
Allocare il file .qm:
sudo cp nomeprogramma_sigla.qm /usr/local/share/nomeprogramma/translations
Creare il collegamento simbolico:
sudo ln -s /usr/local/share/nomeprogramma/translations/nomeprogramma_sigla.qm /usr/share/nomeprogramma/translations