• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Internazionalizzazione e localizzazione del software
 

Internazionalizzazione e localizzazione del software

on

  • 3,843 views

Riassunto delle slides del prof. Minazzi e altri. Sito originale :

Riassunto delle slides del prof. Minazzi e altri. Sito originale :
http://webcen.dsi.unimi.it/wcinfo/index_corsi.php?corso=77501&anno_acc=2006/2007

Statistics

Views

Total Views
3,843
Views on SlideShare
3,836
Embed Views
7

Actions

Likes
3
Downloads
0
Comments
0

3 Embeds 7

http://www.slideshare.net 5
http://www.linkedin.com 1
http://www.slashdocs.com 1

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

CC Attribution-NonCommercial LicenseCC Attribution-NonCommercial License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Internazionalizzazione e localizzazione del software Internazionalizzazione e localizzazione del software Presentation Transcript

    • Int. e local. del software Lezione 1
    • Int. e local. del software
        • Globalizzazione: nell'insieme si intendono i processi di rimozione delle limitazioni allo spostamento di merci,informazioni e persone.
        • Per lo sviluppo del software un approccio globalizzato implica la moltiplicazione di ciascun problema per un numero N di volte simile a quello " locali " di destinazione.
    • Int. e local. del software
        • Affrontare lo sviluppo del software in modo strutturato richiede delle attività di internazionalizzazione che hanno un costo. Tale costo si ripaga in funzione di diversi fattori, primo tra i quali la quantità di attività di localizzazione, anche esso funzione di variabili quali il numero di locali di destinazione e la frequenza di aggiornamento dei dati (vedi diagramma sottostante).
    • Int. e local. del software
        • E' possibile delineare comuni in tutti i progetti.
        • M odello concettuale GILT: per lo sviluppo di prodotti globalizzati. In questo modello la gestione degli aspetti internazionali del prodotto/servizio è composta da 4 macro-attività strettamente interconnesse:
        • GILT = Globalizzare - Internazionalizzare - Localizzare - Tradurre
        • Globalizzare significa pensare e svolgere tutte quelle attività che permettono di gestire la vita del prodotto su scala globale.
        • Internazionalizzare significa concepire il prodotto in modo tale da poter gestire l'utilizzo da parte di utenti che appartengono a locali diverse senza dover prevedere una nuova fase di concezione.
        • Localizzare significa trasformare tutti i contenuti del prodotto in modo da renderlo adatto alle diverse locali.
        • Tradurre significa trasformare il testo in modo da essere compreso dagli utenti nelle diverse locali.
    • Int. e local. del software
        • Globalizzazione (G11n) :
        • Indetificare le locali target e le loro specificità;
        • Definire specifiche internazionali,distribuzione,vendita,politca di marketing e manutenzione internazionale;
        • Internazionalizzare il prodotto ed effettuare le localizzazioni;
        • Questa attività comprende l'internazionalizzazione e la localizzazione.
        • Internazionalizzazione (I18n) :
        • Rispettare specifiche internazionali;
        • Identificare le parti localizzabili e verificarne la localizzabilità;
        • Costruire la piattaforma di testing internazionale e il Localization Kit ;
    • Int. e local. del software
        • Localizzazione (L10n) :
        • Rendere disponibili i testi ai linguisti e tradurli;
        • Doppiare audio/video,ritocco immaini;
        • Reimportare nel prodotto i testi tradotti;
        • Compilazione programma/pubblicazione sito;
        • Testing su versioni localizzate;
        • L'attività L10n comprende la traduzione del testo.
        • Traduzione :
        • Costruzione glossari locali;
        • Traduzione testi;
        • Controlli di qualità su ciò che si è tradotto;
    • Int. e local. del software
        • Compiti primari dell'informatico in un progetto internazionale:
        • saper valutare gli aspetti linguistici/culturali;
        • utilizzare le tecnologie disponibili e forgiare le applicazioni in modo da permettere di comunicare al pubblico più vasto possibile;
        • analizzare i processi e approntare gli strumenti per rendere efficiente la gestione dei dati e dei contenuti del progetto;
        • interagire con tutti i componenti del team, contribuendo attivamente alla riuscita del progetto.
        • Ruoli nei progetti globali :
        • Sviluppo di strumenti di elaborazione dei contenuti (ruolo: programmatore);
        • Realizzazione di applicativi per la pubblicazione (CD-ROM, DVD-ROM, siti Web, portali aziendali) (analista, programmatore)
        • Realizzazione di soluzioni di comunicazione in rete finalizzate all’interazione con utenti internazionali (analista, programmatore);
        • Coordinamento tecnico nei team di produzione editoriale (tecnico o responsabile dello sviluppo internazionale);
        • Supporto al ciclo di vita di servizi (tecnico o responsabile della gestione del servizio);
    • Int. e local. del software Lezione 2
    • Int. e local. del software
        • Nel definire una locale parliamo di gruppi culturali e non di lingue, in quanto sviluppare per utenti internazionali significa parlare a destinatari che appartengono a più culture.
        • Sotto il profilo informatico i gruppi culturali vengono distinti mediante un parametro chiamato locale , che rappresenta una serie di elementi significativi per il sistema di calcolo:
        • Lingua;
        • Sistema di scrittura;
        • Convenzioni di scrittura (date,ore,valute,ecc);
        • Convenzioni culturali (colori,forme,immagini e suoni);
        • Si identifica una locale mediante coppia di valori “lingua-stato”:
        • en-UK inglese – Inghilterra
        • codice lingue: ISO_639 codice stati: ISO_3166
    • Int. e local. del software
        • L'identificazione precedente non tiene conto delle differenze culturali esistenti tra comunità che appartengono ad un medesimo stato e condividono la medesima lingua, ma soddisfa la maggior parte dei casi pratici. Le locali così definite sono basate sulla combinazione delle due principali convenzioni tra individui:
        • il modo di comunicare (la lingua);
        • le regole di convivenza (lo stato);
    • Int. e local. del software
        • Lingue:
        • 6000 lingue in uso;
        • mancano programmi che gestiscano adeguatamente il testo di tutte sebbene esistano i font per rappresentarle;
        • Si basano uno o più sistemi di scrittura , ossia il modo in cui si scrive la lingua, un vocabolario , ossia un insieme di elementi di base (sostantivi, verbi, aggettivi, avverbi, preposizioni, ecc) e una grammatica ossia un insieme di regole che permettono di comporre concetti articolati a partire dagli elementi di vocabolario.
    • Int. e local. del software
        • Sistemi di scrittura : composti da un insieme dei caratteri utilizzati e convenzioni di scrittura .
        • Insieme caratteri:
        • caratteri alfabetici (es: romani, greci, cirillici, indiani, thai, arabi)
        • caratteri sillabici (es: giapponesi hiragana e katakana, coreani)
        • caratteri ideografici e pittogrammi (es: cinesi, giapponesi kanji)
    • Int. e local. del software
        • Convenzioni di scrittura : distinguono le lingue a parità di caratteri utilizzati. Principali convenzioni:
        • direzionalità : sinistra-destra, destra-sinistra, verticale;
        • sillabazione : suddivisione in sillabe;
        • uso dei diacritici (modificatori di carattere,come gli accenti della lingua italiana,la cediglia,la tilde,ecc: ò,à, ô,Ç,ü ) e possono essere posizionati singolarmente,in gruppo, sopra/sotto, su più di un livello, davanti/dopo un carattere e servono per indicare come pronunciare il carattere a cui si applicano.
        • adattamento dei glifi (segni) alla posizione di scrittura;
        • modo di separare le parole, scrivere la punteggiatura, i numeri, le date.
        • Date le diverse convenzioni esistenti, il trattamento informatico degli elementi linguistici varia in generale da lingua a lingua.
    • Int. e local. del software
        • Principali sistemi di scrittura
        • Diffusione geografica : aree del pianeta in cui è usata la lingua come lingua primaria
        • Tipo di caratteri : alfabetici, sillabici, ideografici;
        • Numero di caratteri : Numero totale di caratteri a disposizione per la scrittura
        • Direzionalità : sinistra-destra, destra-sinistra, verticale da destra a sinistra
        • Separatore tra parole ;
        • Sistema di ordinamento: metodo con cui si ordinano le parole o le stringhe di testo
        • Sistemi di traslitterazione in caratteri latini : metodo con cui si scrivono le parole di un sistema non-latino ad uno che usa i caratteri latini.
    • Int. e local. del software
        • Latino
        • Diffusione geografica: Europa occidentale, Turchia, USA, Australia, America latina, Vietnam, Filippine.
        • Tipo di caratteri: fonetico
        • Numero caratteri: 26 lettere,5 vocali. Diacritici: accenti, dieresi, barre.
        • Direzionalità: monodirezionale sinistra-destra
        • Stili: maiuscolo e minuscolo.
        • Separatore tra parole: spazio
        • Forma dei caratteri: 5 caratteri cambiano forma se sono finali di parola
        • Sistema di ordinamento: fonetico
        • NB Il numero di lettere dell'alfabeto latino può variare in funzione della lingua che si sta scrivendo :
        • Finlandese e Svedese hanno 29 lettere (26 + Å, Ä, Ö)
    • Int. e local. del software
        • Le convenzioni di scrittura sono molto diverse, anche tra le lingue che condividono sistemi di scrittura.
        • In genere le convenzioni di scrittura sono definite a livello di stati nazionali, mentre i sistemi di scrittura coprono aree geografiche sovranazionali.
        • Non tutte le locali utilizzano il medesimo sistema di rappresentazione dei numeri. Ad esempio il sistema decimale inventato in India, esportato in Arabia, adottato dagli Europei, non viene utilizzato correntemente in tutti i paesi.
    • Int. e local. del software
        • Per fare una ricerca, occorre paragonare stringhe di testo e determinare se il testo trovato è quello cercato. Un secondo aspetto è quello dell’ordinamento di parole, nomi, frasi.
        • Nei sistemi di scrittura latini gli algoritmi di paragone e ordinamento di stringhe devono affrontare la presenza di diacritici e maiuscole .
        • I sistemi di scrittura ideografici usano invece diversi tipi di ordinamento:
        • per segni
        • fonetici
        • per radicali
        • L’ordine con cui si tracciano i segni degli ideogrammi non è in fatti casuale. Su di esso si basa il sistema di ricerca per segni (pen strokes).
    • Int. e local. del software
        • Più in generale i sistemi di paragone di stringhe sono basati su:
        • composizione di caratteri primitivi in caratteri composti
        • decomposizione di caratteri composti in caratteri primitivi.
    • Int. e local. del software
        • Quando si tratta di affrontare un progetto software per una comunità (paese, gruppo etnico, ecc) che non si conosce, occorre procedere:
        • documentarsi sulla lingua usata dalla locale o comunità di destinazione, lingua che può non coincidere con quella usata su base nazionale;
        • verificare quale è il sistema di scrittura utilizzato per rappresentare la lingua di destinazione.
        • verificare se e in che misura i sistemi di sviluppo e di fruizione prescelti supportano l'input degli utenti e l’output nella lingua di destinazione.
        • identificare un referente competente madrelingua della lingua di destinazione con cui confrontarsi sui contenuti per validare gli aspetti linguistici del software
    • Int. e local. del software
        • Composizione dinamica dei testi
        • In generale, si può dire che il software è composto da:
        • a) parti neutre rispetto alla lingua di destinazione;
        • b) parti che hanno il compito di creare il testo nella lingua di destinazione (elaborazione di date, composizione di stringhe con parti variabili),
        • c) parti che hanno il compito di comporre visivamente il testo sulla pagina secondo le regole della locale di destinazione.
        • In un progetto di internazionalizzazione, le tre parti vanno identificate accuratamente e separate per permettere una analisi accurata delle attività di sviluppo da svolgere.
    • Int. e local. del software Lezione 3
    • Int. e local. del software
        • I computer elaborano solo sequenze di byte. Si fa ricorso ad un modello composto dai seguenti componenti per la gestione e visualizzazione del testo:
        • Dispositivi di input;
        • Applicativo più sistema operativo;
        • Font;
    • Int. e local. del software
        • Dispositivi di input : mezzi costituiti da coppia HW-SW attraverso cui gli utenti inseriscono il testo. Esempi sono le tastiere (PC,PDA),sistemi di input vocali. Essi associano un numero intero alla selezione effettuata dall'utente.
        • Per dispositivi con pochi tasti esistono gli IME ,software che aiuta la composizione di testi (come il T9 per i cell).
        • Programma applicativo + OS : l'applicazione svolge tutto quello che il sistema operativo non offre. Essi fanno:
        • Ricezione del valore dal dispositivo di input;
        • Abbinamento ad un carattere del charset in uso dal sistema;
        • Cosultazione del font per la sua rappresentazione;
        • Visualizzazione del segno restituito dal font;
    • Int. e local. del software
        • Font : associa un segno (glifo) ad un valore di un charset.
      • Il sistema operativo agisce come sistema di collegamento tra sistema di input, insiemi di caratteri e font. L ’insieme di caratteri e il font da utilizzare sono informazioni fondamentali per potere garantire la corretta interpretazione del testo.
      • Insiemi di caratteri : è una tabella che associa in modo biunivoco un numero intero ad un segno che lo rappresenta.
    • Int. e local. del software
      • ASCII ( ISO 646 ) :
      • rappresentazione a 7 bit (+1 di controllo);
      • 128 simboli, codificati tra 0 to 127.
      • contiene caratteri di controllo,visibili e non (come CR,LF,DEL,ec).
      • Caratteri latini per la lingua inglese;
      • ANSI ( ISO Latin-1) :
      • insieme composto da 256 simboli, codificati tra 0 to 255 (i primi 127 sono uguali all'ASCII);
      • accentate,tagliate,con dieresi,con tilde,simboli d'uso corrente;
    • Int. e local. del software
      • Charset proprietari : p er molti anni, in mancanza si una normativa generale sulla codifica dei caratteri sono stati prodotti diversi insiemi di caratteri dedicati a lingue specifiche e a specifici sistemi operativi,provocando errori come i seguenti nella distribuzione di testo da un OS all'altro:
    • Int. e local. del software
      • Una risposta alla incompatibilità tra produttori diversi è la famiglia delle codifiche standard ISO 8859-x :
      • basati su una rappresentazione a 8 bit;
      • compatibili con l'ASCII per i caratteri tra 0 127;
      • non permette di rappresentare ideogrammi e caratteri delle lingue orientali;
      • utenti con insiemi di caratteri diversi non possono visualizzare gli stessi testi, in quanto i sistemi l'interpretazione dei file in genere si basano sullo specifico insieme di caratteri della lingua del sistema operativo e questa informazione non è contenuta all'interno dei file di testo..
    • Int. e local. del software
      • Codifiche a lunghezza variabile :
      • utilizzano per ogni carattere sequenze di 1, 2, o più byte.
      • se un carattere è spesso usato, si usa un solo byte altrimenti allora si utilizzano due o più byte (questo mantiene anche la compatibilità con ASCII);
      • In un flusso di dati a codifica mista , vengono inseriti degli appositi caratteri di controllo che indicano, a chi interpreta il flusso di dati, che si sta passando da caratteri con rappresentazione a byte singolo a quelli a byte multiplo e viceversa.
      • ISO 2022: standard internazionale con codifica a lunghezza variabile che rappresenta per le lingue orientali l’equivalente di ISO 8859. Sono utilizzati correntemente alcuni altri standard definiti da enti di standardizzazione dei singoli paesi (JIS,EUC,Big5).
    • Int. e local. del software
      • ISO/IEC 10646 : progetto di standardizzare la rappresentazione dei tutti i caratteri esistenti in un unico insieme.
      • Simboli di sistemi di scrittura,lingue nazionali, lingue antiche,segni usati da diverse comunità;
      • ogni carattere viene rappresentato con un codice unico (code point) .
      • questo sistema lascia spazio per ospitare gli script (sistemi di scrittura), cioè sottoinsiemi di caratteri che permettono di scrivere lingue che utilizzano lo stesso sistema di scrittura.
      • Continua....
      • Altri link:
      • http://www.nada.kth.se/i18n/ucs/unicode-iso10646-oview.html
    • Int. e local. del software
      • ISO 10646 :
      • ogni elemento dello spazio di rappresentazione è detto code point (o punto). Ad esso corrisponde la descrizione di un elemento semantico (carattere/simbolo).
      • L’insieme dei primi 65.536 punti (2 16 ) è detto Basic Multilingual Plane (256 righe da 256 punti) in cui per compatibilità col passato, si mappano tutti i caratteri ASCII nella riga zero .
      • I caratteri di posizione più alta ancora si trovano in un set di 5 successivi piani con 65.536 valori.
      • numero massimo di caratteri rappresentabili con ISO10646 è pari a 2 21 , ossia circa un milione sebbene attualmente ne utilizzi circa 100 mila.
    • Int. e local. del software
      • Unicode :
      • standard industriale per la rappresentazione dei caratteri su scala mondiale.
      • definisce come immagazzinare l’informazione semantica relativa ai caratteri, non visualizzazione,lasciato ai programmi di rendering.
      • I caratteri di posizione più alta si trovano in un set di 5 successivi piani con 65.536 valori.
      • Il numero massimo di caratteri rappresentabili con ISO10646 è pari a circa un milione sebbene attualmente ne utilizzi circa 100 mila.
      • dalla versione 2 in poi (ora la 4.0) è completamente compatibile con lo standard ISO/IEC 10646.
      • contiene documenti tecnici (UAX e UTS) che definiscono metodi su come utilizzare i caratteri,dando norme e algoritmi per andare a capo,trattare le scritture bidirezionali,paragoni tra stringhe.
    • Int. e local. del software
      • Flussi di caratteri e sistemi di codifica : per gestire in modo efficiente l'immagazzinamento/trasmissione dei caratteri si ricorre a sistemi di codifica che riducono statisticamente spazio e banda richiesti. Aspetti fondamentali della scelta dei sistemi di rappresentazione sono:
      • la compatibilità con ASCII
      • l’efficienza nella occupazione di memoria,
      • l’efficienza nella interpretazione dei flussi di caratteri.
      • Per la corretta visualizzazione del testo contenuto in un flusso di byte servono tre passaggi logici:
      • sapere quale codifica è stata applicata al testo nel flusso
      • interpretare il contenuto mediante lo stesso charset usato per la scrittura del file
      • richiamare un font adeguato alla resa visiva del testo
    • Int. e local. del software
      • Ogni code point di ISO 10646 può essere rappresentato con 2 o con 4 ottetti. Nella rappresentazione a 2 byte (UCS-2), Il primo byte rappresenta la riga , e il secondo la posizione nella riga. UCS-2 permette di rappresentare 65.536 code point.
      • La rappresentazione a 4 ottetti (detta UCS-4 ) permetterebbe di rappresentare circa 2 miliardi di punti ma si limita a 21 bit la rappresentazione (compatibile con Unicode). Si possono così rappresentare circa un milione di caratteri divisi in 16 diversi piani . Ogni piano contiene 65.536 punti. I primi 5 bit identificano il piano , e i restanti 16 bit individuano la riga , e la posizione all’interno del piano.
      • l piano 0 del gruppo 0 è detto Basic Multilingual Plane , (BMP, piano base multilingua) ed è ovviamente l’unico per il quale i valori non mutano se si passa dalla rappresentazione a 2 a quella a 4 ottetti.
    • Int. e local. del software
      • Unicode fornisce tre sistemi di codifica dei propri caratteri: UTF-8 e UTF-16, oltre a UTF-32 . Ciascuno di essi si basa rispettivamente su unità elementari di 1, 2 o 4 byte per carattere.
      • UTF-8 : con 7 bit si rappresentano tutti i 127 caratteri ASCII, mentre i caratteri con valori superiori a 127 vengono rappresentati con un numero di byte variabile: da 2 a 6, in funzione del valore da rappresentare. Può dare luogo a rappresentazioni più lunghe o più corte di UCS-4 e di UCS-2. Per la rappresentazione di testi, in genere UTF-8 dà luogo a codici più compatti di UCS-4.
      • UTF-16 : permette di indirizzare un milione di caratteri, organizzati in 15 piani da 65536 caratteri oltre al BMP (Base Multilingual Plane). I sistemi sono pensati in modo da rendere possibile il passaggio tra UTF-8 a UTF-16 senza perdita di informazioni
    • Int. e local. del software
      • La scelta del sistema di codifica dipende dall'efficienza in termini di occupazione di memoria e di semplicità di elaborazione degli specifici caratteri utilizzati. Se si lavora sempre su caratteri latini, conviene UTF-8 , ma se ci si sposta su lingue diverse , possono essere più efficienti UTF-16 o UTF-24 .
      • Con l'introduzione di Unicode e lo sviluppo di routine che gestiscono i caratteri di diverse lingue, gli OS si sono spostati verso la gestione di testi e scritte in qualunque lingua.
      • Offrendo API di gestione del testo basate su Unicode, diventa possibile sviluppare singole applicazioni che accettano input e visualizzano l'interfaccia utente in varie lingue .
      • Questo approccio permette lo sviluppo e la manutenzione di un singolo codice eseguibile ( single bytecode ) distribuibile in ogni area geografica del mondo.
    • Int. e local. del software Lezione 4
    • Int. e local. del software
      • Font
      • Il compito dei font è di fornire i segni che rappresentano i caratteri . Un font è basato su una tabella detta font encoding table che indica a quale carattere è associata ciascuna immagine. Tra i caratteri e i segni che li rappresentano esistono diverse corrispondenze:
      • Corrispondenza uno a molti : u n font può contenere diversi segni per lo stesso carattere . Quale di questi segni usare dipende dalle regole della lingua in cui si scrive e dalle preferenze di chi compone graficamente il testo.
      • Corrispondenza molti a uno : Un glifo inoltre può rappresentare tutto un carattere, più caratteri, oppure una parte di un carattere (l carattere italiano "Numero": № (Unicode 0x2116) composto da " N "+" o "+" - ").
    • Int. e local. del software
      • Font raster/outline : ogni segno che rappresenta un caratttere può essere rappresentato come raster di punti o immagine vettoriale outline.
      • Raster :
      • collezioni di immagini in forma di raster ognuna delle quali rappresenta un segno.
      • dimensioni definite;
      • facili da rendere sullo schermo: il testo è una giustapposizione di piccole immagini;
      • Difficili da ridimensionare e da manipolare;
      • Per ogni dimensione del carattere occorre avere una immagine diversa;
    • Int. e local. del software
      • Outline : contengono i contorni (outline) dei caratteri.
      • Ridimensionabili e manipolabili;
      • Si possono rendere a qualunque risoluzione;
      • Adattabili in funzione della posizione del carattere nel testo;
      • Per la visualizzazione occorre convertire i caratteri in raster. Se ne occupa il RIP ( Raster Image Processor ) che interpreta le formule che descrivono i contorni e le trasfroma in sequenze di punti.
      • Se non è disponibile una quantità sufficiente di punti per costruire l'intera forma, possono verificarsi problemi nella rappresentazione del carattere a una certa risoluzione. Quindi i font outline contengono informazioni aggiuntive (" hint ") per istruire il rasterizer su come comportarsi (problema rilevanti x basse risoluzioni o caratteri piccoli da rappresentare). Possiam specificare la larghezza degli steli
    • Int. e local. del software
      • Carateristiche font
      • Proporzionalità : nei font non proporzionali tutti i segni hanno uno spazio riservato di uguale larghezza (Courier) e nei font proporzionali ogni segno occupa uno spazio diverso (Arial). I caratteri ideografici occupano tutti la medesima area anche nei font proporzionali mentre i caratteri latini vengano resi in cinese e giapponese mediante segni che occupano una unità (full width) oppure mezza unità (half width),più efficace in termini di spazio.
      • Parametri impaginazione:
        • Kerning : riduzione dello spazio in eccesso fra coppie di caratteri, per dare un aspetto più omogeneo al testo.
        • Tracking : manipola la spaziatura di tutte le lettere del testo.
    • Int. e local. del software
    • Int. e local. del software
    • Int. e local. del software
      • Graziatura :
        • Serif : le lettere hanno dei riccioli (grazie) che permettono di collegare visivamente più caratteri per massima leggibilità (Courier new,Times New roman);
        • Sans Serif : non hanno tali riccioli (Arial,Century Gothic).
        • Utilizzo : Le scelte di combinare font diversi vanno fatte in base a rigorosi criteri di impaginazione e strutturazione del testo. Per i sistemi di scrittura basati su caratteri latini valgono le seguenti norme generali che ottimizzano la leggibilità:
      • le righe hanno dimensioni standard variano dai 50 agli 80 caratteri.
      • Righe troppo brevi o troppo lunghe risultano faticose da leggere.
      • Vanno utilizzati dei margini a bordo pagina.
      • Si preferiscono i font proporzionali.
    • Int. e local. del software
      • Diritti : le famiglie di font sono soggette al pagamento di diritti di utilizzo da parte degli utenti. Acquistando un sistema operativo con un certo font preinstallato si compra il diritto a utilizzare il font, ma non a distribuirlo (e tanto meno a rivenderlo). In particolare, non è permesso distribuire un font assieme ad una applicazione senza pagare dei diritti al produttore originario.
      • Aspetti internazionali : per essere certi della visualizzazione corretta dei caratteri sui client degli utenti locali occorre verificare quali font sono a disposizione degli utenti delle locali di destinazione.
      • Esistono diverse strategie per affrontare la compatibilità tra i font su sistemi appartenenti a locali diverse.
    • Int. e local. del software
      • Strategia 1 : utilizzare font con le seguenti due caratteristiche:
      • supporto insieme di caratteri Unicode
      • font di sistema sulla piattaforma utilizzata dagli utenti di destinazione
      • Conviene comunque testare l'applicazione in un ambiente localizzato in modo da verificare l 'effettivo utilizzo dei font.
      • Strategia 2 : Nel caso non si possiedano i diritti di distribuzione di font specifici e si desideri dare un aspetto personalizzato, è possibile trattare i testi come grafica raster, trasformando i testi in immagini.
      • Strategia 3 : Se si possiedono i diritti di distribuzione dei font, è possibile strutturare l'applicazione in modo da richiamare i font adeguati.
      • Strategia 4 : capacità di sostituire eventuali font mancanti con altri font simili. Nel Web è possibile indicarlo nei fogli di stile CSS.
    • Int. e local. del software
      • Strategia 5 : Qualora si tratti di distribuire documenti, Adobe Acrobat permette di inserire i font all'interno dei file stessi. Per fare questo è consigliabile utilizzare il driver di stampa Distiller.
      • Un utile metodo per verificare se la resa grafica sul client di destinazione è corretta è quello di farsi inviare una stampa o più stampe dello schermo prese sul client locale, e confrontarle con quanto viene visualizzato sulle macchine usate per creare i contenuti.
    • Int. e local. del software
      • Tecnologie dei font outline
      • Type1(ISO 9541) :
        • Prodotti da Adobe, sono rappresentati in linguaggio PostScript .
        • Esistono oltre 30.000 caratteri in formato Type1.
        • sono nati per la stampa e precedono gli altri per tempo;
        • le istruzioni per implementare gli hint non sono pubbliche, di conseguenza gli hint Type 1 non possono essere interpretati, se non attraverso un rasterizer Adobe .
        • usano le curve di Bézier (cubiche)
      • TrueType
        • Prodotti da Apple e Microsoft per Mac e Windows.
        • Concepiti per la visualizzazione a schermo, possono essere utilizzati anche per la stampa.
        • usano le B-spline (quadratiche).
    • Int. e local. del software
      • OpenType
        • (Adobe e Microsoft) formato più recente e attualmente in fase di diffusione. Supera le divisioni tradizionali tra i due formati sopra menzionati.
        • Un file OpenType contiene dati che descrivono un font TrueType o uno PostScript.
      • Adobe Type Manager
        • Motore di rendering che trasforma in formato raster i font Type1.
        • converte font outline in caratteri raster che possono essere utilizzati su dispositivi di uscita come monitor o stampanti non PostScript.
    • Int. e local. del software
      • I due formati utilizzano descrizioni matematiche differenti per rappresentare le curve dei caratteri:
      • i font Type1 usano le curve di Bézier (cubiche)
      • i font TrueType usano le B-spline (quadratiche).
      • Ciò dà imperfezioni nella conversione tra i formati e non consente una traduzione diretta delle informazioni contenute negli hint. In compenso gli hint TrueType sono migliori rispetto a quelli PostScript in quanto permettono di controllare più aspetti del carattere; inoltre alcuni hint PostScript hanno una soglia nella dimensione in pixel a cui vengono attivati. Tuttavia i tool di editing di font TrueType che sfruttano le potenzialità di hinting sono spesso costosi e creare hint sofisticati richiede tempo e lavoro di programmazione. I vantaggi degli hint TrueType possono essere rilevanti per l'output su dispositivi a bassa risoluzione o per la visualizzazione su schermo nella produzione multimediale.
    • Int. e local. del software
      • Differenze fra Type1 e TrueTipe
      • L'utilizzo degli hint nei due formati rispecchia due diverse filosofie .
        • PostScript fa affidamento ad un interprete "intelligente" che controlla e gestisce le caratteristiche degli hint. Un upgrade da parte di Adobe al rasterizer può migliorare il processo di hinting.
        • TrueType utilizza un rasterizer più piccolo e veloce, a spese di file font più grossi; ciò permette un maggior controllo da parte dei produttori di font sul processo di hinting (e quindi su come apparirà il font nelle diverse condizioni), ma richiede anche uno sforzo maggiore da parte del designer. Per TrueType è necessario fare l'upgrade di tutti i font (non è sufficiente acquistare una nuova stampante o un rasterizer aggiornato).
    • Int. e local. del software
      • Formati
      • Type1 :
        • font PostScript che richiedono un file outline per le forme, in genere con estensione ".PFB" ( Printer Font Binary ) o ".PFA" (Printer Font Ascii, per comunicazione con le stampanti solo tramite scambio di codice ASCII), e un file metrico generalmente noto come file “PFM” ( Printer Font Metric ), che contiene informazioni sul modo in cui i caratteri vanno assemblati, (spaziatura tra i caratteri, legature, ecc.). Le coppie di file PostScript sono spesso più piccole del singolo file TrueType, soprattutto quando questo contiene informazioni estese di hinting.
        • T rueType :
        • memorizzano le informazioni in un unico file solitamente con estensione ".TTF" ( TrueType Font ).
    • Int. e local. del software
      • Molti dispositivi di output utilizzano PostScript come linguaggio per la descrizione della loro pagina interna, quindi questi possono ricevere direttamente font PostScript.
      • Sia i font TrueType che Type 1 possono essere renderizzati col linguaggio di impaginazione vettoriale Adobe PostScript Level 3. Infatti I font TrueType possono essere "avvolti" (wrapped) in un file PostScript, in modo da poter essere contenuti e gestiti in stampanti Postscript. In tal caso il font si chiama Font Type 42. La stampante PostScript deve peraltro eseguire un rasterizzatore TrueType per poter utilizzare i font Type 42. I font TrueType devono in questo caso essere scaricati come bitmap, oppure il rasterizer TrueType deve essere scaricato come programma PostScript, rallentando così la stampa.
    • Int. e local. del software
      • Open Type :
          • racchiude le caratteristiche dei font PostScript e TrueType in un unico tipo di contenitore dei caratteri.
          • le applicazioni e i sistemi operativi si interfacciano con i font indipendentemente da ciò che sta all'interno del "contenitore".
          • le tabelle di font encoding supportano Unicode e permettono di gestire il posizionamento di diacritici e la creazione di legature tra caratteri.
          • estensione .OTF o .TTF in funzione del tipo di outline nel font e dell’esigenza di compatibilità all'indietro per i sistemi senza supporto nativo OpenType. Esiste anche la possibilità di includere più font nello stesso file OpenType, per condividere tra più font alcuni glifi senza doverli duplicare (utile per i font asiatici). In tal caso l’estenzione è .TTC ( TrueType Collection )
    • Int. e local. del software
      • Dimensione dei font
      • La dimensione dei font dipende dal numero di caratteri contenuti e dal tipo di font. I font che contengono 256 caratteri occupano in media 30-45 Kbyte se si tratta di font Type1 e circa 60-70 Kbyte se sono TrueType . I Truetyper, a causa del sistema di hinting inserito all'interno del font sono più grossi e pertanto risultano anche più lenti dei Type1 per il download.
      • I font più voluminosi sono quelli che contengono anche l'insieme dei caratteri cinesi. Un font Unicode completo occupa infatti 8-11 MB , oltre 100 volte più di un font da 256 caratteri.
    • Int. e local. del software
      • Font e stampa
      • I font utilizzati per la visualizzazione a schermo e quelli per la stampa sono in principio differenti:i primi sono caricati nell'OS del computer, mentre i secondi possono essere residenti nella stampante oppure possono scaricati dal computer, e renderizzati nella stampante.
      • Qualora la stampante non disponga di un proprio RIP, il computer può renderizzare i font e passare alla stampante i raster già pronti per la stampa altrimenti se ce l'ha e il font da rendere è TrueType, il computer convertire il TrueType in PostScript e inviare le istruzioni PostScript alla stampante tramite il driver della stampante (può dare luogo a cambiamenti nella dimensione del testo).
      • Per garantire che sia utilizzato lo stesso font con le stesse metriche occorre operare sui parametri di rendering PostScript. Si possono avere livelli di controllo diversi da parte dell'utente su questo processo(stampante, driver, applicazione di stampa).
    • Int. e local. del software Lezione 5
    • Int. e local. del software
      • Internazionalizzazione
      • Scrivere un'applicazione internazionale signifcia sviluppare codice senza preconcetti culturali (locale-independent) e che crei i presupposti per una semplice localizzazione dei contenuti e personalizzazione (funzionalità locali),senza un ridisegno della logica del programma o riscrittura di codice per ciascuna locale. La creazione dell'applicazione passa attraverso tre fasi:
        • lo sviluppo;
        • la localizzazione (che include la traduzione);
        • la personalizzazione.
      • Svincolare i concetti dalle rappresentazioni, identificando tutte le componenti che gestiscono contenuti la cui rappresentazione dipende dal Locale , isolando i contenuti statici e gestendo i contenuti dinamici.
    • Int. e local. del software
      • Modelli di sviluppo e di distribuzione:
        • un eseguibile specifico per ogni lingua : approccio tradizionale poco efficiente. Risorse all'interno dell'eseguibile principale,quindi per ogni modifica implica completa ricompilazione ed esclude possibilità di un'applicazione multilingua.
        • un singolo eseguibile e libreria di risorse multilingua : risolve i problemi precedenti ma la modifica o l'aggiunta di una lingua implica necessariamente l'aggiornamento dell'intera libreria;
        • un singolo eseguibile e libreria di risorse per ogni lingua : più flessibile. Le librerie satellite possono essere localizzate e distribuite singolarmente o in gruppo e nel secondo caso l'applicazione può agevolmente scegliere quale usare a runtime.
    • Int. e local. del software
      • Sistemi di sviluppo:
        • Java : linguaggio a oggetti non legato a una particolare piattaforma. Il supporto all'internazionalizzazione è diventato un punto di forza del linguaggio.
        • .NET : tecnologia per Windows. Il .NET Framework fornisce agli sviluppatori il Common Language Runtime per facilitare la costruzione di applicazioni indipendentemente dal linguaggio di programmazione scelto. Fornisce strumenti per gestire lo sviluppo multilingue.
    • Int. e local. del software
      • class CattivoEsempio {
      • public static void main(String [] argv) {
      • Date today = new Date();
      • int month = today.getMonth()+1;
      • int day = today.getDate();
      • int year = today.getYear()+1900;
      • String std;
      • if (Integer.parseInt(argv[0]) == 1)
      • std = " student";
      • else
      • std = " students ";
      • System.out.println(month+"/"+day+"/"+year+" lecture: "+argv[0]+std+" attending ."); }
      • }
    • Int. e local. del software
      • Problematiche del codice precedente:
        • Stringhe hard-coded ,bisogna agire sui sorgenti per localizzare,possibili errori sintattici,richiede eseguibili diversi per ogni lingua.
        • Il testo è costruito ipotizzando l'uso di una specifica lingua ;
        • L'ordine delle parti variabili della stringa è fisso;
        • La data è formattata secondo la convenzione americana;
    • Int. e local. del software
      • In Java l'internazionalizzazione è supportata dalla classe java.util.Locale. Una sua istanza rappresenta una specifica regione e una lingua e viene usato dalle altre classi che svolgono operazioni internazionalizzate.
      • Quando viene eseguito, un programma Java eredita il Locale predefinito della Java Virtual Machine, che è determinato dal sistema operativo sottostante.
    • Int. e local. del software
      • import java.util.*;
      • import java.text.*;
      • class ShowItalianDateJavaBuonEsempio {
      • public static void main(String [] argv) {
      • Locale itLocale = new Locale("it", "IT");
      • DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, itLocale);
      • Date today = new Date();
      • System.out.println(df.format(today));
      • }
      • }
    • Int. e local. del software
      • Microsoft preferisce usare il termine Culture e la relativa classe si chiama CultureInfo , definita all'interno del namespace System.Globalization . Per ogni thread vengono definiti due oggetti:
        • Thread.CurrentCulture : influenza tutte le operazioni di formattazione e manipolazione del testo;
        • Thread.CurrentUICulture : influenza il modo in cui vengono ricuperati gli elementi memorizzati nei file di risorsa.
    • Int. e local. del software
      • using System;
      • using System.Globalization;
      • using System.Threading;
      • class ShowItalianDateCS {
      • public static void Main(string [] args) {
      • CultureInfo itCulture = new CultureInfo("it-IT");
      • DateTime today = DateTime.Now;
      • Thread.CurrentThread.CurrentCulture = itCulture;
      • Console.WriteLine(today.ToShortDateString());
      • }
      • }
    • Int. e local. del software
      • In generale, all'interno di un'applicazione, possiamo distinguere tra dati che:
        • non necessitano localizzazione : vanno protetti, isolati o segnalati;
        • necessitano localizzazione e sono prodotti a runtime : gestiti con classi e funzioni internazionalizzate
        • necessitano localizzazione e sono statici : gestiti esternamente al codice per facilitarne la localizzazione. Ci si può servire di files di risorse esterne.
    • Int. e local. del software
      • Java: file di testo con estensione .properties che contiene una lista di associazioni chiave=stringa più eventuali righe di commento.
        • le stringhe da localizzare sono esterne al codice, quindi traducibili senza influenzare la struttura del programma che può essere anche modificata a traduzione in corso;
        • i commenti e le chiavi possono aiutare il traduttore a capire il contesto;
        • le frasi non sono spezzettate e il traduttore può sempre tradurre una frase completa, di senso compiuto;
        • l'uso dei placeholder (segnaposto) permette di riorganizzare la struttura della frase anche in presenza di elementi da inserire dinamicamente.
    • Int. e local. del software
      • # strings.properties file
      • morestudents={0} lecture: {1} students attending.
      • onestudent={0} lecture: {1} student attending.
    • Int. e local. del software
      • Locale itLocale = new Locale("it", "IT");
      • DateFormat df =[..data localizzata]
      • Date today = new Date();
      • ResourceBundle rb = ResourceBundle.getBundle("strings ", itLocale);
      • String msgpattern;
      • if (Integer.parseInt(argv[0]) == 1)
      • msgpattern = rb.getString("onestudent"); else [..]
      • Object [] arguments = {df.format(today),argv[0]};
      • System.out.println( MessageFormat.format(msgpattern, arguments) );
    • Int. e local. del software
      • Note:
        • La codifica dei file properties dev'esser ASCII,i caratteri non supportati vanno escaped uxxxx (esadecimale unicode). E' possibile convertire il file in una codifica qualunque in ASCII tramite l'utility native2ascii .
        • Per files binari è possibile usare file di risorse di tipo ListResourceBundle ;
        • Creazione di file properties localizzati ed effetto fallback ;
    • Int. e local. del software
      • .NET:
        • Il formato dei file di risorse è lo stesso. Le differenze sono nella codifica (obbligatoriamente UTF-8) , e nel nome, che invece di strings_it.properties è strings.it-IT.txt.
        • La compilazione è obbligatoria anche per i file di testo e viene effettuata utilzzando il programma ResGen.exe che trasforma i file . txt in file binari con estensione .resources .
        • Per il meccanismo di fallback simile a java il file resources va inserito in un assembly tramite Al.exe e gli assembly van distribuiti in sottocartelle chiamate come le varie Culture. Eventualke assembly con risorse non dipendenti dalla cultura va compliato nell'eseguibile.
    • Int. e local. del software
      • Quando un file di risorse viene creato in Visual Studio il formato utilizzato non è quello dei file .resources ma il formato .resx . Si tratta di un file XML che può contenere molto di più di singole stringhe di testo (es descrizione struttura dell'interfaccia grafica di un'applicazione).
      • Quello che il sistema ci risparmia, quando compiliamo l'applicazione, è la creazione manuale delle singole librerie localizzate e la distribuzione nelle rispettive cartelle necessarie all'attivazione del meccanismo di fallback.
      • <data name=&quot;morestudents&quot; xml:space=&quot;preserve&quot;> <value>{0} lecture: {1} students attending.</value>
      • <comment>log template for many students</comment>
      • </data>
    • Int. e local. del software
      • Quando scriviamo il codice con le stringhe hard-coded in Visual Studio e all'interno dello stesso spuntiamo a True la proprietà localizable,viene creato un file resx nominato come il form e il codice viene automaticamente modificato in modo che i valori delle proprietà degli elementi venga letto direttamente da tale file. Ogni modifica all'applicazione aggiungerà delle sezioni al file resx corrispondente.
      • L'impostazione ora della lingua ad Italiano crea automaticamente il file di risorse Form1.it-IT.resx,in questo modo possiamo modificare le singole proprietà della versione italiana,
    • Int. e local. del software Lezione 6
    • Int. e local. del software
      • Suggerimenti su cosa dovrebbe considerare uno sviluppatore per prevenire le principali fonti di problemi:
        • Gestire i contenuti dinamici in modo locale-independent : il codice il più neutro possibile nella gestione delle risorse e dei contenuti, metodi generalizzati le cui definizioni dovrebbero essere accorpate e isolate dal resto del codice.
        • Esternalizzare le risorse statiche (in particolare la UI) in librerie satelliti per semplificare localizzazione e distribuzione;
        • Usare un encoding che supporti tutti i Locale necessari (Unicode) : se l'applicazione deve dialogare con l'esterno è necessario assicurarsi che sia in grado di effettuare le necessarie conversioni di codifica in ingresso e in uscita e che gestisca gli eventuali protocolli di comunicazione delle stesse.
    • Int. e local. del software
        • Evitare l'uso delle stringhe concatenate : concatenare le stringhe presuppone una specifica sintassi,impedendo trasportabilità in altre lingue. Inoltre gli elementi delle stringhe, forniti separatamente, possono essere molto difficili da tradurre.
        • Gestire i diversi sistemi di input : l'applicazione deve supportare i sistemi di input tipici per i vari Locale e considerarne i limiti e le differenze da lingua a lingua in modo da non limitare le funzionalità (assenza tasti,configurazione hotkeys,ecc).
        • Considerare gli effetti dell'espansione del testo : Il fatto che il testo tradotto risulti spesso più lungo dell'originale deve essere considerato nel disegno delle interfacce per evitare troncamenti e sovrapposizioni.
    • Int. e local. del software
        • Usare font adeguati ai set di caratteri necessari : devono poter visualizzare tutte le lettere degli alfabeti richiesti. Se non inclusi nell'applicazione la scelta dei font dovrebbe cadere su font standard di cui si può assumere la presenza sulle macchine ospite.
        • Non assumere valori predefiniti : quando si definisce un comportamento predefinito dell'applicazione, assicurarsi che possa essere considerato tale in tutte le versioni localizzate.
        • Considerare il livello di I18N delle componenti di terze parti : verificare che anch'esse abbiano il livello di internazionalizzazione richiesto.
        • Fornire contesto ai localizzatori : fornire ai localizzatori il modo di verificare dove e come viene utilizzata una frase riduce il rischio di errori di interpretazione. E' importante evitare di assumere di poter riciclare una parola o una frase in punti diversi dell'applicazione.
    • Int. e local. del software
      • Errori di codifica
    • Int. e local. del software
      • Errori di codifica
      • Stringhe concatenate
      • question1 = &quot;how are you?&quot;
      • question2 = &quot;where are you?&quot;
      • question = &quot;{0} are you?&quot;
      • adverb1 = &quot;how&quot;
      • adverb2 = &quot;where&quot;
      • question = &quot;{0} sei tu?&quot;
      • adverb1 = &quot;come&quot;
      • adverb2 = &quot;dove&quot;
      • question1 = &quot;come sei tu?&quot; ERRORE
      • question2 = &quot;dove sei tu?&quot; OK
    • Int. e local. del software
      • Combinazioni
    • Int. e local. del software
      • Espansione
    • Int. e local. del software
      • Font non supporta caratteri delle stringhe localizzate
    • Int. e local. del software
      • Consentire scelte,no impostazioni predefinite
    • Int. e local. del software
      • Fornire contesto ai localizzatori
    • Int. e local. del software
      • Test internazionalizzazione
      • Prima di passare alla fase di localizzazione vera e propria può essere molto utile effettuare un test di internazionalizzazione , cioè un test finalizzato a verificare l'effettiva predisposizione dell'applicazione a gestire i diversi Locale.In particolare un test di internazionalizzazione dovrebbe comprendere:
        • l'installazione dell'appplicazione sui sistemi locali
        • una prova di gestione di contenuti locali
        • una pseudo-traduzione delle interfacce (anche con strumenti CAT).
    • Int. e local. del software
      • Simulazione di Catalyst per l'italiano con espansione 20%
    • Int. e local. del software
      • Pianificazione localizzazione
      • I passaggi del processo di localizzazione sono essenzialmente tre:
        • la fornitura delle risorse al localizzatore
        • la localizzazione da parte del localizzatore
        • la reintegrazione delle risorse nel progetto di sviluppo
        • Considerazioni:
        • E' un processo che di solito inizia a sviluppo non terminato e continua in parallelo allo stesso.
        • Processo iterativo , segue i raffinamenti dell'applicazione,assicurarsi che il localizzatore possa ad ogni ciclo concentrarsi solo sulle modifiche all'esistente.
        • La reintegrazione non deve sovrascrivere le risorse &quot;sorgenti&quot; che avranno subito dei cambiamenti
    • Int. e local. del software
      • Pianificazione localizzazione
      • I passaggi del processo di localizzazione sono essenzialmente tre:
        • la fornitura delle risorse al localizzatore
        • la localizzazione da parte del localizzatore
        • la reintegrazione delle risorse nel progetto di sviluppo
        • Considerazioni:
        • E' un processo che di solito inizia a sviluppo non terminato e continua in parallelo allo stesso.
        • Processo iterativo , segue i raffinamenti dell'applicazione,assicurarsi che il localizzatore possa ad ogni ciclo concentrarsi solo sulle modifiche all'esistente.
        • La reintegrazione non deve sovrascrivere le risorse &quot;sorgenti&quot; che avranno subito dei cambiamenti
    • Int. e local. del software
      • Approcci alla localizzazione
        • Traduzione delle risorse testuali : al localizzatore vengono forniti i file di risorse (es. file properties o resx). Bisogna solo chiarire quali sono le parti da tradurre all'interno del formato del file. Poco feedback: il traduttore potrà vedere le sue traduzioni in contesto solo dopo che le risorse siano state ricompilate nell'applicazione.
        • Traduzione delle risorse binarie : al localizzatore vengono fornite le risorse in un formato compilato (es. dll) che permettono al localizzatore di vedere direttamente (con appositi tool) l'aspetto dell'interfaccia in cui si collocano le stringhe, fornendogli così il contesto per le risorse statiche. Se fornita l'applicazione eseguibile è anche possibile inserire la risorsa tradotta nella struttura di installazione e vederne l'effetto sul software localizzato potendo quindi rivedere in contesto anche le risorse generate a runtime.
    • Int. e local. del software
        • Traduzione in linea : realizzabile solo nel caso l'applicazione acceda a runtime alle singole risorse (es. risorse dal db). In questo caso le traduzioni apparirebbero immediatamente nell'applicazione. Fornisce il feedback migliore, ma bisogna considerare che potrebbe non essere semplice identificare nell'applicazione dove appare una singola stringa. Una variante di questo metodo consiste nel poter invocare un editor di risorse durante l'esecuzione stessa dell'applicazione. In questo caso la localizzazione delle risorse statiche è particolarmente agevole e può eventualmente essere effettuata direttamente da un utilizzatore. Il sistema però non si adatta alla localizzazione di quelle dinamiche e, per il suo approccio non sistematico, risulta di solito poco efficiente e difficilmente supportabile da strumenti CAT.
    • Int. e local. del software
      • XML
        • si presta bene a descrivere dati in modo strutturato.
        • Specificare la codifica dei caratteri nel prologo dei doc. XML;
        • Specificare la lingua usata tramite attributi ad-hoc ( <para lang=&quot;en&quot;> This paragraph is in English </para> );
        • Usare identificatori univoci : utile nei files monolingua,mantiene collegamento fra medesime parti ( <para id=&quot;id2&quot;> This paragraph is in English </para> nel file test_en.xml);
        • Descrivere il contenuto , non l'aspetto: ci pensano i fogli di stile a quello (CSS/XSL).
        • Indicare la traducibilità ,tramite tag appositi ( <para localize=&quot;no&quot;> This paragraph must stay in English </para> )
    • Int. e local. del software
        • Fornire un metodo per comunicare con i traduttori ,per esempio tramite descrizioni in tag appositi ( <para description=&quot;Empty is a verb, not an adjective.&quot;> );
        • Non prevedere attributi traducibili ,meglio spostare il contenuto in elementi se va tradotto;
        • All'interno del W3C si sta cercando di definire uno standard preciso per un insieme di tag e attributi finalizzati all'internazionalizzazione dei documenti XML chiamato ITS (International Tag Set).
    • Int. e local. del software Lezione 7