Introduzione
Le informazioni qui presenti forniscono alcune regole di carattere generale necessarie a facilitare il tema dell'implementazione del plurilinguismo in SmeUP/LoocUP, in particolare la specifica di convenzioni di programmazione RPG per facilitare la traduzione in lingue diverse dall'italiano.
Per permettere una traduzione in modo semplice ed evitare di tradurre il codice sorgente è buona norma separare le informazioni testuali da quelle che invece servono solamente all'esecuzione
del programma. E' necessario prestare attenzione nei vari punti dove vengono usate informazioni testuali.
Il programmatore (specialmente chi scrive programmi standard) deve prestare particolare attenzione a come scrive le costanti. Questo perché aggiungere costanti nuove (non usate in altri programmi o DSP o PRTF) significa poi un corrispondente lavoro di traduzione nelle varie lingue.
Per limitare il proliferare di queste frasi occorre stabilire standard e direttive di sviluppo a cui TUTTI devono attenersi.
Sigle
Come regola generale le sigle non vanno tradotte, ad esclusione di un buon margine di sicurezza sull'identificazione del reale significato della sigla (es.: IVA è una sigla traducibile).
Nel dubbio è necessario eseguire delle verifiche.
Frasi speciali
Le frasi che presentano più di una parola con più di uno spazio tra di esse danno con una certa probabilità un significato alla posizione di ogni singola parola che le compone. Per tale motivo vanno tradotte mantenendo fisse tali posizioni.
Le considerazioni presentate sono state evidenziate dai collaboratori addetti alle traduzioni in lingua e all'estrazione delle costanti dai programmi RPG.
Abbreviazioni
- Usare sempre il punto subito dopo la parola che si intende abbreviare:
FORMA ESTESA | ABBREVIAZIONE |
---|---|
Commerciale | Comm. |
Articolo | Art. |
Documento | Doc. |
Livello | Liv. |
Numero | Num. |
ECCEZIONI: "Quantità" è comunemente accettato come "Qtà" (la à accentata e indispensabile per distinguere l'abbreviazione di quantità da quella di quota).
- Per agevolare la comprensione, le parole abbreviate devono contenere almeno 3 lettere:
FORMA ESTESA | ABBREVIAZIONE CORRETTA | ABBREVIAZIONE DA EVITARE |
---|---|---|
Codice | Cod. | Cd |
Oggetto | Ogg. | Og. |
Classe | Clas. | Cl. |
- Evitare di abbreviare parole già corte in partenza (meno di 5 caratteri):
FORMA ESTESA | ABBREVIAZIONE DA EVITARE |
---|---|
Tipo | Tp. |
Riga | Rig. |
Data | Dta o Dt o D. |
- Evitare ASSOLUTAMENTE frasi del tipo:
N.B.: "Imp." così abbreviato si presta purtroppo a svariate interpretazioni (imposta, imponibile, importo, impostazione, importante, importare, implosione, impatto, ecc...). Sarebbe dunque auspicabile evitare tale abbreviazione. Se questo non fosse possibile, provvedere ad abbreviare la parola nel modo più chiaro possibile, per evitare confusioni durante la traduzione.
Acronimi
Sempre maiuscoli, senza spazi e con il punto che segue le lettere:
FORMA ESTESA | ACRONIMO | _h_ACRONIMO DA EVITARE |
---|---|---|
Unità di Misura | U.M. | Um |
Codice Fiscale | C.F. | C.f |
Non conformità | N.C. | NC |
ECCEZIONI: acronimi entrati nel linguaggio comune, quali CAP, IVA, ABI-CAB, CEE, vanno lasciati così, senza l'utilizzo del punto, ma mantenendo sempre le maiuscole.
Incolonnamento
Evitare frasi contenute in un'unica variabile (sia per problemi di andata a capo di una parola, sia per ragioni di allineamento, dato che una parola tradotta può essere più o meno lunga dell'originale):
"ente articolo c"
"odice strumento disp"
"onibile "
Questo accade in particolare nelle specifiche di output. Soluzione: inserire ogni parola in una variabile senza spazi.
Costanti
Quando si utilizzano costanti che NON devono essere tradotte, bisogna inserire la parola chiave "COSTANTE" nel campo Comments. In questo modo il programma per l'estrazione automatica ignora la costante e non la segnala come costante non estratta.
Es.:
D F19I C CONST('ABCDEMNOPQabcdemnopq')
D F19I C CONST('ABCDEMNOPQabcdemnopq') COSTANTE
Traduzione delle schiere
La traduzione delle schiere nei programmi avviene dinamicamente quando il programma viene eseguito. La sostituzione vera e propria della costante con la sua traduzione avviene con la chiamata della /copy £LIN, tipicamente nella £INIZI di ogni programma.
N.B.: Vengono tradotte solamente le costanti presenti in schiera, quindi è fondamentale non inserire costanti letterali sparse nel codice, ma sempre in una schiera.
Caratteri particolari
Evitare l'utilizzo dei segni "+" e "x" come abbreviazioni delle parole "più" e "per", perchè possono essere confusi con i segni veri e propri e non hanno un corrispondente nelle lingue di traduzione.
Utilizzo utility _3_e Nome Sorgente_n_
Dopo aver creato nuove costanti è possibile verificare che siano state incluse tutte nelle schiere e che non ci siano errori (per esempio di battitura) eseguendo il comando e nome_sorgente(e A£SER_01 per esempio) dalla riga dei comandi.
Dopo essere entrati nell'utility, indicando il comando 12, è possibile analizzare una prima traduzione (dove esiste) delle stringhe inserite nella lingua inglese (lingua di riferimento nelle traduzioni) ed è possibile individuare eventuali anomalie (come costanti non in schiera).
Specchietto riepilogativo
Ora individuiamo brevemente i punti da tenere bene in mente:
Numero_Nota | Oggetto | Descrizione |
---|---|---|
1 | Abbreviazioni | Usare il punto; Abbreviazione non inferiore ai 3 caratteri; Non abbreviare parole già corte |
2 | Acronimi | Utilizzare lettere maiuscole e punti salvo eccezioni |
3 | Incolonnamento | Evitare frasi contenute in una sola variabile |
4 | Costanti | Inserire la parola chiave COSTANTE nel campo Comments per costanti che non devono essere tradotte in lingua |
5 | Traduzione delle schiere | Inserire costanti letterali esclusivamente internamente di schiere, non liberamente nel programma |
6 | Caratteri particolari | Evitare utilizzo dei segni + e X come abbreviazioni delle parole più e per |
7 | Utility e | Per controllare che le stringhe siano state inserite correttamente |