Guida alla traduzione della UI e del contenuto della Guida utente

    From The Document Foundation Wiki
    This page is a translated version of the page UI and Help files Content Guide and the translation is 100% complete.
    Other languages:

    Questa guida fornisce un dettaglio degli elementi compresi nell'interfaccia grafica e nei file della Guida utente che devono o non devono essere tradotti, come le variabili o gli elementi xml usati nei file .po.

    Termini univoci

    Alcune parole devono essere usate in modo univoco all'interno dei file di traduzione, altrimenti possono causare malfunzionamenti del programma o creare all'utente il rischio di perdere dei dati. Questi termini sono:

    • i Nomi degli stili come quelli che potete trovare nel file sw/source/ui/utlui.po file
    • i Nomi delle funzioni di Calc (come STRLIST_FUNCTION_NAME) che potete trovare nel file formula/source/core/resource.po
    • i simboli di Math che potete trovare nel file starmath/source.po. Fate attenzione anche al fatto che i simboli di Math non possono contenere spazi. Per esempio, il simbolo di math perthousand non deve essere tradotto con per mille, oppure noelement non deve essere tradotto con nessun elemento.
    • le voci dell'Indice della guida in linea, come <bookmark_value\>Modifica;File della Guida utente\<\/bookmark_value\>, anche se non si trovano nello stesso file, in quanto ciò causerebbe malfunzionamenti alla visualizzazione delle voci dell'indice.
    • il | simbolo nelle stringhe del programma di installazione di Windows

    Variabili e simboli nei file dell'intefaccia

    Nonostante sia difficile definire delle regole rigide in merito alle variabili e ai simboli presenti nei file dell'interfaccia grafica, in quanto, in diverse parti del codice sorgente, LibreOffice usa un mix di tecnologie, questo è un tentativo di mettere per iscritto alcune norme.

    • Alcuni file contengono un | alla fine delle stringe. Questo simbolo è obbligatorio, in quanto, se venisse omesso, si creerebbe un errore di runtime all'interno dell'installer. Questo è un esempio presente nel file instsetoo_native/inc_openoffice/windows/msi_languages.po:
    Up one level|
    Create New Folder|
    
    • nella maggior parte dei casi $ e % indicano l'inizio di una variabile che viene sostituita nell'interfaccia utente e la parola o il numero che segue $ o % non dev'essere tradotta. Esempi:
    %PRODUCTNAME                 ''Questo visualizzerà il nome del prodotto''
    Change object title of %1    ''%1 verrà sostituito con nome dell'oggetto''
    Internal error $(ARG1).      ''$(ARG1) verrà sostituito con il codice di errore interno''
    
    Se $ è usato come simbolo monetario, come nella stringa che segue, quindi non rappresenta una variabile, il segno della valuta può essere liberamente tradotto, nel caso in cui la situazione lo richieda:
     Restituisce il prezzo di un titolo dal valore nominale di $100 con l'ultimo periodo d'interesse irregolare.
    
    • \n nell'interfaccia grafica indica una nuova riga. Nella traduzione, dovrete provare a sistemare la stringa in modo da adattarsi all'interruzione di riga, ma senza rimuoverla altrimenti, all'interno della finestra di dialogo, la stringa risulterà troncata. Esempio:
    #1 Verificate che Impress sia in esecuzione \n
    #2 per gli utenti che usano il Bluetooth, abilitate "Preferenze"-"LibreOffice Impress"-"Generale"-"Abilita il controllo remoto"\n
    #3 per gli utenti che usano il WiFi, attivate "Preferenze"-"LibreOffice"-"Avanzate"-"Abilita le funzionalità sperimentali" \n
    
    • {x}, dove 'x' è un numero, si tratta di una variabile usata nella app Impress Remote. Non deve essere modificata.
    • <X>, dove X è una parola in lettere MAIUSCOLE, nella maggior parte dei casi si tratta di una variabile che non deve essere tradotta. Alcuni esempi sono <FIELD>, <FIELDNAME>, <LOGICOPERATOR> e <VALUE>. Se avete dei dubbi chiedete indicazioni in merito al caso specifico nella mailing list l10n@global.libreoffice.org.
    • [n], dove n è un numero, indica un parametro che verrà visualizzato per esteso nella stringa finale. Il numero non deve essere modificato o tradotto.
    • [x], dove x è una parola (forse con una cifra alla fine), spesso indica un parametro che verrà visualizzato per esteso nella stringa finale, il cui nome non deve essere toccato o tradotto (es. [ProductName]), ma alle volte si tratta di una stringa che in realtà dovrebbe essere tradotta (es. la [M] e la [T] nell'interfaccia utente delle impostazioni del correttore automatico). Se avete dei dubbi chiedete indicazioni in merito al caso specifico nella mailing list l10n@global.libreoffice.org.
    • {xxx}, dove xxx è una strina, indica una parte di una stringa che verrà omessa quando il valore del [parametro] all'interno delle parentesi non ha un valore nel momento in cui viene visualizzato.
    esempio:
     Il file [2][3] è attualmente in uso {da parte del seguente processo: Nome: [4], ID: [5], Titolo della finestra: 
     [6]}. Chiudete l'applicazione e riprovate.
    
    In questo caso, se al momento dell'esecuzione le variabili [5] o [6] non hanno un valore, la sottostringa "da parte del seguente processo: Nome: [4], ID: [5], Titolo della finestra: [6]" verrà tralasciata e non sarà visualizzata. In tal caso la stringa finale non avrebbe senso, ma questa è un'altra questione. :-)

    Elementi XML della Guida utente

    I file della guida contengono molti elementi in XML che rendono difficile la traduzione per coloro che iniziano. Qui vengono illustrati in modo che non abbiate dubbi quanto traducete. Fate attenzione, che alle volte gli elementi sono nidificati all'interno di altri elementi. Gli elementi contengono anche degli attributi che vengono menzionati nella descrizione di ciascun elemento.

    Il miglior modo di trattare questi elementi è quello di copiarli e incollarli nella traduzione, in modo da essere sicuri di non dimenticarne una parte o di commettere degli errori di digitazione. Dopodiché potete tradurre il contenuto racchiuso tra i due tag, tenendo conto anche degli elementi nidificati.

    <ahelp></ahelp>

    Questo è un elemento presente nella cartella della guida. Nonostante ciò, le informazioni che contiene vengono visualizzate nell'interfaccia grafica in forma di suggerimento esteso, quando in LibreOffice è attiva la relativa opzione. Questo elemento è <ahelp>il suggerimento esteso</ahelp>. Esempio:

    <ahelp hid=\".\">Questo menu contiene comandi per modificare i contenuti del documento corrente.</ahelp>

    Questo elemento possiede due attributi che non devono essere tradotti:

    • hid (come nell'esempio qui sopra)
    • visibility

    <alt></alt>

    Questo elemento fornisce un'alternativa visuale ad un'immagine. Si trova spesso nidificato in un elemento <image>, esempio:

    <alt id=\"alt_id3159119\">Icona</alt>

    • in questo caso dovete tradurre la parola Icona e null'altro.
    • per le immagini localizzate contiene anche xml-lang=\"it-IT\", dove dovete sostituire it-IT con il codice ISO della vostra lingua.

    <bookmark_value></bookmark_value>

    Questo elemento viene usato per le voci dell'indice della guida utente. La prima parolaè la voce principale, separata da un punto e virgola. La seconda parola rappresenta la voce di secondo livello, per esempio:

    <bookmark_value>stili di pagina; intestazioni</bookmark_value><bookmark_value>stili di pagina;piè di pagina</bookmark_value>
    <bookmark_value>intestazioni; definizione</bookmark_value><bookmark_value>piè di pagina; definizione</bookmark_value>
    <bookmark_value>nomi dei file nelle intestazioni/piè di pagina</bookmark_value><bookmark_value>modifica;date,automaticamente</bookmark_value>
    <bookmark_value>date;aggiornamento automatico</bookmark_value><bookmark_value>aggiornamento automatico della data</bookmark_value>

    • alle volte capita che la parola della fonte in inglese abbia un significato diverso rispetto alla vostra lingua, come intestazione e titolo. Se trovate una di queste voci come <bookmark_value>Header;Title</bookmark_value>, potete semplicemente rimuovesa dalla traduzione, questo non avrà alcun effetto.
    • la maggior parte delle volte, molte voci sono raggruppate nello stesso paragrafo.
    • non dovrebbero esserci due voci simili nella cartella relativa alla guida, in quanto ciò causerebbe degli errori nella visualizzazione dell'indice all'interno dell'interfaccia della guida.

    <caseinline></caseinline>

    Questo elemento permette di attivare il contenuto a seconda della piattaforma usata (Windows, Linux o Mac). Il testo visualizzato sarà differente. Spesso è nidificato negli elementi <switchinline> o <defaultinline>. Esempio:

    Premete <switchinline select=\"sys\"> <caseinline select=\"MAC\">Command</caseinline><defaultinline>Ctrl</defaultinline></switchinline>

    e fate clic sull'etichetta del foglio nel quale volete inserire i contenuti.

    • in questo esempio dovete tradurre solamente la stringa Command tra i due tag caseinline. Se nella vostra lingua la tastiera usa un tasto diverso da Ctrl, dovete modificare anche questo (come in tedesco, nel quale il tasto sulla tastiera si chiama "Strg") in ogni caso appartiene ai tag <defaultinline>.
    • questo elemento ha un attributo: select come nell'esempio qui sopra. Questo attributo non deve essere tradotto.

    <defaultinline></defaultinline>

    Questo elemento contiene il testo predefinito che sarà visualizzato nel caso in cui sia possibile attivare un contenuto a seconda della piattaforma. Come già visto nell'elemento precedente, questo si trova spesso nidificato all'interno degli elementi <switchinline> e <caseinline>. Esempio:

    Premete <switchinline select=\"sys\"> <caseinline select=\"MAC\">Command</caseinline><defaultinline>Ctrl</defaultinline></switchinline> e fate clic sull'etichetta del foglio nel quale volete inserire i contenuti.

    • questo elemento non ha attributi.

    <embedvar></embedvar>

    Tra i tag di questo elemento non ci sono contenuti che che richiedano localizzazione, ma può essere nidificato. Esempio:

    <embedvar href=\"text/scalc/00/00000004.xhp#optional\"/>

    • questo elemento possiede un attributo: href come nell'esempio qui sopra

    <emph></emph>

    Questo elemento permette di mettere in evidenza la stringa racchiusa tra i suoi tag, perciò dovete sempre tradurre il contenuto che trovate al suo interno. Esempio:

    Selezionate <emph>Formato - Unisci celle - Unisci e centra le celle</emph>

    • questo elemento non ha attributi.

    <image></image>

    Questo elemento riguarda le figure incorporate nei file. Di per se, non contiene contenuti da localizzare, ma, al suo interno, sono sempre nidificati altri elementi come <alt> che contengono stringhe da tradurre. Esempio:

    <image id=\"img_id3153714\" src=\"sc/res/sf01.png\" width=\"0.1665in\" height=\"0.1665in\"><alt id=\"alt_id3153714\">Icona</alt></image>

    In questo esempio vedete l'elemento nidificato <alt></alt> nel quale Icona va tradotta.

    Questo elemento possiede quattro attributi che non vanno tradotti:

    • id indica il riferimento della figura
    • src indica il percorso dove si trova la figura
    • width indica la larghezza della figura, l'unità di misura può essere differente (per esempio cm) ma non ha effetto sulla visualizzazione della figura
    • height indica l'altezza, anche in questo caso l'unità di misura può essere differente

    <item></item>

    Questo elemento descrive una formattazione speciale applicata al contenuto che si trova tra i suoi tag.

    Alcuni esempi:

    Per accettare il completamento, premete il tasto <item type=\"keycode\">Invio</item> o un tasto freccia.

    In questo esempio, osservate che la formattazione speciale viene applicata per evidenziare l'inserimento da tastiera.

    In <item type=\"menuitem\"><switchinline select=\"sys\"><caseinline select=\"MAC\">
    %PRODUCTNAME - Preferenze</caseinline><defaultinline>Strumenti - Opzioni</defaultinline>
    </switchinline> - $[officename] - Generale </item>potete impostare l'anno a partire dal quale gli anni con due cifre vengono riconosciuti come 20xx.

    In questo esempio più complesso, potete vedere che la formattazione speciale viene applicata per evidenziare una voce del menu.

    • type è l'unico attributo di questo elemento. Determina il tipo di voce da evidenziare.

    <link></link>

    Questo elemento indica un collegamento a un altro file della guida o a un sito sul web. Esempi:

    <variable id=\"datedif\"><link href=\"text/scalc/01/func_datedif.xhp\">DATEDIF</link></variable>

    In questo esempio, il contenuto che sarà visualizzato si trova in scalc/01/func_datedif.xhp. Dovete tradurre solamente DATEDIF.

    <link href=\"text/scalc/main0210.xhp\" name=\"Barra degli oggetti dell'anteprima stampa\">Barra degli oggetti dell'anteprima stampa</link>

    In questo esempio, va tradotto anche il contenuto dopo l'attributo name.

    Questo elemento possiede quattro attributi:

    • href è il riferimento al file. Non ha contenuti localizzabili.
    • name è un attributo completamente inutilizzato. La sua traduzione non ha effetto su alcunché.
    • target è la destinazione quando di tratta di contenuti web. Non ha contenuti localizzabil.
    • type è il tipo di contenuto da visualizzare. Non ha contenuti localizzabili.

    <switchinline></switchinline>

    Come visto sopra per gli elementi <caseinline></caseinline> e <defaultinline></defaultinline>, questo elemento permette di attivare il contenuto a seconda della piattaforma (Windows, Linux o Mac). Di suo non ha contenuti da tradurre, ma contiene sempre ulteriori elementi nidificati. Esempio:

    Premete <switchinline select=\"sys\"> <caseinline select=\"MAC\">Command</caseinline><defaultinline>Ctrl</defaultinline>
     </switchinline>

    e fate clic sull'etichetta del foglio nel quale volete inserire i contenuti.

    • select è il suo unico attributo. Non ha contenuti localizzabili.

    <variable></variable>

    Questo elemento determina il contenuto che viene riutilizzato nei file. Il contenuto compreso tra i suoi tag deve essere localizzato. Esempio:

    <variable id=\"kopfundfusszeilentext\"><ahelp hid=\".uno:EditHeaderAndFooter\">Permette di definire e formattare le intestazioni ed i piè di pagina.</ahelp></variable>

    Questo elemento possiede due attributi:

    • id è il nome della variabile e non deve essere tradotto. Il suo nome può fornire delle indicazioni sul tipo di contenuto, purtroppo, nella maggior parte dei casi, è in tedesco.
    • visibility il cui contenuto non va tradotto.

    Ricerca e gestione dei file .po

    Ci sono diverse operazioni che potete eseguire direttamente sui file .po. Questi sono dei file di testo che è possibile manipolare utilizzando alcuni script, come il translate toolkit.

    Dato che il campo Cerca di Weblate non è molto efficiente, usando il comando grep dalla linea di comando di Linux, quando effettuate la ricerca su molti file, otterrete dei risultati maggiormente significativi. Questa parte contiene una breve descrizione di alcuni script e degli esempi di utilizzo dei comandi grep e sed che vi aiuteranno a manipolare i file.

    Per prima cosa dovrete scaricare i file da Weblate e usare il comando cd per portarvi nella directory in cui volete lavorare (ui o help).

    Translate Toolkit

    Nella maggior parte dei casi i pacchetti del Translate Toolkit sono disponibili nella vostra distribuzione. Nel caso non lo siano, o siano quelli di una vecchia versione, potete ottenerli qui [1]. Se avete problemi ad installare o usare questi script, non esitate a chiedere aiuto sulla mailing list l10n.

    Molti script compresi nel Translate Toolkit sono implementati in Weblate, come ad esempio Failing Checks, che vi permette di controllare le traduzioni. Alcuni però possono tornarvi utili:

    • poterminology vi permette di estrarre dai file .po/pot un file con la terminologia usata. Prima di iniziare un progetto di traduzione è di grande aiuto avere un glossario con un elenco tradotto delle parole più importanti o ambigue. Potrete poi caricare questo file anche nel progetto su Weblate. La sintassi e le opzioni sono spiegate sul sito.
    • posegment vi aiuta ad incrementare la qualità delle vostre TM (memorie di traduzione) suddividendo i file po a livello di singole frasi. La sintassi e le opzioni si possono trovare sul sito.
    • pocompendium vi permette di creare un grande file po dai singoli file po presenti in una directory. Ciò è utile ad esempio quando avete suddiviso un file lungo per ripartirlo tra un gruppo di traduttori. La sintassi e le opzioni sono spiegate sul sito.
    • posplit vi permette di estrarre tre file .po che contengono rispettivamente: le stringhe tradotte, le stringhe non tradotte e le stringhe ambigue. La sintassi e le opzioni sono spiegate sul sito.

    Utilizzo di grep per la ricerca di stringhe

    Il comando grep è usato in Linux, macOS o su sistemi Unix-like per eseguire delle ricerche all'interno di file di testo, o per cercare in uno specifico file delle righe che contengono determinate stringhe o parole. Il comando visualizzerà la riga che soddisfa la ricerca.

    • La sintassi più semplice è:
    grep 'parola' filename.po
    
    Esempio:
    sophie@sophie:~/libo_ui-fr$ grep 'Browse' accessibility/source/helper.po
    
    restituisce
    msgid "Browse"
    
    Qui viene detto al comando grep di trovare la parola Browse nel file helper.po, che si trova nella sottodirectory source della directory accessibility.
    • Ciò non è molto utile, in quanto dovete conoscere la directory in cui si trova la stringa e LibreOffice ne contiene molte. Perciò aggiungeremo un'opzione per effettuare la ricerca ricorsivamente in tutte le directory che si trovano all'interno di quella principale. Questa è l'opzione -r.
    La sintassi:
    grep -r 'parola' directory
    
    Esempio:
    sophie@sophie:~/libo_ui-fr$ grep -r 'Browse' accessibility/
    
    restituisce
    accessibility/source/helper.po:msgid "Browse" 
    
    è più semplice! La risposta indica il percorso della stringa
    • per forzare ad ignorare la differenza tra maiuscole e minuscole nella parola (per esempio per cercare indifferentemente Browse, browse o BROWSE), dovrete aggiungere l'opzione -i. La sintassi è:
    grep -r -i 'parola' directory
    
    • Ora, nella risposta volete ottenere anche il numero della riga in cui si trova la stringa. L'opzione da usare è la -n
    La sintassi è:
    grep -r -i -n 'parola' directory
    
    vediamo un esempio applicato a una directory con tutte le opzioni che conoscete:
    sophie@sophie:~/libo_ui-fr$ grep -r -i -n 'Browse' accessibility/
    
    la risposta è:
    accessibility/source/helper.po:23:"RID_STR_ACC_NAME_BROWSEBUTTON\n"
    accessibility/source/helper.po:25:msgid "Browse"
    
    potete vedere, che la seconda voce contiene la parola da tradurre.
    • Se volete trovare esattamente la stringa che avete inserito, potete aggiungere l'opzione -w. Per esempio per cercare is e non trovare anche this o his, ecc.
    • Se volte cercare più parole e trovare esattamente quelle che avete inserito, la sintassi è:
    egrep -w -r -n 'parola1|parola2' directory/
    
    Esempio:
    sophie@sophie:~/libo_ui-fr$ egrep -w -r -n '~File|_File' sw/
    
    la risposta è:
    sw/uiconfig/swriter/ui.po:313:msgid "_File System"
    sw/uiconfig/swriter/ui.po:1649:msgid "_File name"
    sw/source/ui/frmdlg.po:563:msgid "~File name"
    sw/source/ui/misc.po:591:#~ msgid "~File system"
    sw/source/ui/dialog.po:169:msgid "~File name"
    sw/source/ui/index.po:522:msgid "~File"
    
    Nota: per trovare un'espressione regolare particolare si usa egrep. La e sta per grep esteso ma potete anche usare l'opzione -E: grep -E -r -n 'parola1|parola2' directory/
    • Se nella vostra ricerca è presente un carattere che richiede un'escape, come un'apostrofo (es. child's book in inglese, l'objet in francese o l'oggetto in italiano), il modo più semplice di gestirlo è quello di racchiudere la parola da cercare tra virgolette doppie anziché singole, come in questo esempio:
    sophie@sophie:~/libo_ui-fr$ grep -r -n "l'objet" sw/
    sw/source/ui/utlui.po:4106:msgstr "Cliquer sur l'objet"
    sw/source/ui/utlui.po:4133:msgstr "Souris sur l'objet"
    sw/source/ui/utlui.po:4151:msgstr "Souris quitte l'objet"
    sw/source/ui/utlui.po:4626:#~ msgstr "Renommer l'objet : "
    sw/source/core/undo.po:641:msgstr "Supprimer l'objet"
    
    • le normali espressioni regolari si applicano a grep (*: trova nessuno o più dei caratteri o delle espressioni che lo precedono ; ^: trova l'espressione all'inizio di una riga, come in ^A, ecc.)

    Utilizzo di sed per la modifica dei file

    Come grep, sed è un comando potente che permette di modificare molto facilmente il contenuto dei file .po. Sed sta per Stream EDitor. Per esempio, se in un file volete sostituire Intestazione con Titolo, la sintassi sarà:

    sed 's/Intestazione/Titolo/g' <file.po
    
    • per primo avete il nome del comando s per sostituisci
    • poi la parola originale separata dai delimitatori /
    • subito dopo la parola con cui sostituire l'originale
    • g significa globale e sostituirà tutte le occorrenze della parola ricercata all'interno del file e non solamente la prima
    • quindi il file nel quale effettuare la sostituzione
    • fate attenzione anche alla presenza delle virgolette semplici.

    Sed usa le espressioni regolari per gestire le istruzioni, ma la sintassi rimane la stessa sopra illustrata. Qui non forniamo un dettaglio di tutte le sintassi usate nelle linee sottostanti, che comunque sono delle espressioni abbastanza semplici che potete usare in modo sicuro sui vostri file.

    • Rimuovere commenti da un file
    Esempio del file utlui.po dal quale rimuovere il # mio commento
    # mio commento
    #. dnChg
    #: 04180400.xhp 
    
    dalla directory sw/source/ui inserite il seguente comando:
    sophie@sophie:~/libo_ui-fr/sw/source/ui$ sed '/^#\ /d' utlui.po > tt
    
    questo creerà in quella directory un file "tt", che contiene tutte le stringhe in cui tutti i "#" all'inizio della riga (^) seguiti da uno spazio sono cancellati (la d nella sintassi).
    Per fare in modo che il file tt diventi nuovamente utlui.po:
    sophie@sophi:~/libo_ui-fr/sw/source/ui$ mv tt utlui.po
    
    ora il file è pulito!
    • Indica la riga della sostituzione

    Riprendendo il nostro primo esempio, se volete lavorare solamente su di una determinata riga, 306 avrete:

    sed '306 s/Intestazione/Titolo/g' <file.po
    

    quindi ora sapere come usare sul file prima grep per trovare la stringa e poi il comando sed per correggerla

    • sul sito del progetto GNU troverete maggiori informazioni sui delimitatori, le espressioni regolari e la sintassi.

    Localization