Internazionalizzazione e localizzazione

Da Wikipedia, l'enciclopedia libera.
Globe of letters.png

L'internazionalizzazione e la localizzazione sono i processi di adattamento di un prodotto, pensato e progettato per un mercato o un ambiente definito, ad altri mercati o ambienti, in modo particolare altre nazioni e culture.

I prodotti che possono essere l'oggetto di tali processi sono i più svariati: dalla pubblicità (televisiva, editoriale, ecc.) ai software (sistemi operativi, applicazioni, programmi, ecc.), dai siti web ai manuali d'uso, dalle pubblicazioni mediche e scientifiche, alle etichette dei prodotti venduti sul mercato internazionale.

Campi di applicazione[modifica | modifica sorgente]

Un cartello di benvenuto in francese, giapponese, spagnolo e coreano presso la stazione della KCR a Hong Kong

L'internazionalizzazione viene applicata durante la fase di progettazione del prodotto, e cioè in tale fase vengono predisposti tutti gli elementi perché il prodotto possa essere facilmente venduto sul mercato internazionale.

La localizzazione invece si applica al prodotto che viene venduto su un mercato estero particolare e completa il prodotto stesso con le traduzioni del testo o con l'adattamento alla particolare cultura locale.

Alcuni dei campi di applicazione dei processi di internazionalizzazione e localizzazione sono:

  • La lingua
In particolare il testo codificato (computer): alfabeti/scritture; sistemi diversi di numerazione; scritture da sinistra verso destra e da destra verso sinistra. I sistemi più recenti utilizzano Unicode per risolvere molti di questi problemi legati alla codifica dei caratteri. Le rappresentazioni grafiche di testo (materiale stampato, immagini contenenti testo) il parlato (audio) e i sottotitoli nei prodotti multimediali.
  • Il formato di data e ora, incluso l'utilizzo di calendari differenti e diversi fusi orari (UTC in ambienti internazionalizzati)
  • Immagini e colori: questioni relative alla comprensibilità e all'appropriatezza culturale

Principali differenze tra Internazionalizzazione e Localizzazione[modifica | modifica sorgente]

La differenza tra internazionalizzazione e localizzazione è sottile ma fondamentale. L'internazionalizzazione è l'adattamento di prodotti per un potenziale utilizzo al di fuori del mercato o ambiente in cui sono stati progettati i prodotti stessi, mentre la localizzazione è l'aggiunta ai prodotti di caratteristiche speciali che permettano di utilizzare tali prodotti in specifici mercati o ambienti cosiddetti locali. I processi sono evidentemente complementari e devono essere combinati e sinergici per raggiungere l'obiettivo di un prodotto che funzioni (o possa avere lo stesso successo) su un piano globale. Ecco alcuni elementi specifici della localizzazione: Traduzione linguistica; supporto speciale per alcune lingue, come ad esempio le lingue dell'estremo oriente; usi locali; contenuti locali; simboli, metodi di ordinamento degli elenchi; estetica; valori culturali e contesto sociale.

Nello sviluppo software, dopo che un prodotto è stato internazionalizzato, il termine localizzazione fa riferimento al processo necessario a renderlo pronto per uno specifico mercato.

Per questo motivo ci si può riferire ad un prodotto come "internazionalizzato" se è stato sviluppato per soddisfare i requisiti di una comunità internazionale, ma non ancora pronto per un mercato specifico. La preparazione per uno specifico mercato viene chiamata "localizzazione".

Relazioni con il termine globalizzazione[modifica | modifica sorgente]

Internazionalizzazione è un termine molte volte utilizzato per globalizzazione, specialmente per fare riferimento agli effetti economici e culturali di un mondo sempre più interconnesso.

Mentre il termine internazionalizzazione si riferisce comunemente all'aggiunta di risorse per supportare più lingue, specialmente in ambito software, a volte viene anche utilizzato per indicare il processo secondo cui qualcosa (una multinazionale, un'idea, un'autostrada, una guerra, ecc) ha effetto su più nazioni. Questo utilizzo è comunque raro: al suo posto viene preferito il termine globalizzazione. A causa (o per merito) della globalizzazione, molte aziende e molti prodotti sono presenti in tantissimi paesi del mondo, aumentando le necessità di localizzazione.

Il termine localizzazione può anche descrivere la produzione di merci in un sito vicino all'utente finale, in modo da ridurre i costi ambientali e altri costi legati alla globalizzazione.

Localizzazione software[modifica | modifica sorgente]

Screenshot di programmi software localizzati in Italiano.

La localizzazione software è un processo di traduzione dell'interfaccia utente di un software da una lingua a un'altra e l'adattamento della stessa in accordo alla cultura straniera. Questo processo è molto complicato e spesso richiede sforzi particolari da parte dei team di sviluppo. Esistono strumenti che possono semplificare il processo di localizzazione. Molti di questi progetti vengono affidati ad aziende specializzate per diminuirne i costi.

La localizzazione software può anche fare riferimento all'adattamento di un software da una cultura a un'altra. Durante la localizzazione alcuni riferimenti a storia e cultura vengono sostituiti con equivalenti riferimenti locali che non modifichino il senso dell'originale.

Nei giochi a console, la localizzazione si occupa anche del controverso processo di produrre console e soprattutto cartridge che possano essere utilizzate solamente nella regione geografica per la quale sono state progettate. Per esempio, una cartridge europea potrebbe non funzionare in una console nord-americana. Inoltre la localizzazione include la modifica dei dialoghi e di altri elementi per meglio adattarsi al pubblico del paese. Un motivo per quest'operazione è legato alle differenze tra censure locali: le regole di autocensura di Nintendo, ad esempio, variano tra Stati Uniti d'America e Giappone.

Difficoltà[modifica | modifica sorgente]

Nell'ambito della creazione di prodotti software, l'internazionalizzazione e la localizzazione introducono compiti particolarmente impegnativi per gli sviluppatori, specialmente se il software non è progettato sin dall'inizio tenendo ben presente questi fatti. Una pratica comune è quella di separare i dati testuali e altri dati dipendenti dall'ambiente di utilizzo, dal codice del programma; in questo modo il supporto per un ambiente diverso, idealmente, richiederà soltanto modifiche in quelle risorse separate dal codice, semplificando enormemente il compito del localizzatore.

Il team di sviluppo necessita di qualcuno che comprenda le lingue e le culture straniere e che abbia discrete capacità tecniche; tale persona potrebbe essere difficile da trovare. Inoltre, la duplicazione delle risorse potrebbe diventare un incubo per la manutenzione. Per esempio, se un messaggio che viene mostrato all'utente viene modificato, tutte le versioni tradotte necessitano della stessa modifica. Sono disponibili alcune librerie software che aiutano quest'arduo compito, come ad esempio Gettext.

Da quando il software libero può essere liberamente modificato e ridistribuito, è di fatto più adatto all'internazionalizzazione. Molti software proprietari sono disponibili solo in lingue considerate economicamente convenienti, mentre il progetto KDE, per esempio, è stato tradotto in più di 70 lingue.

Metodi[modifica | modifica sorgente]

L'attuale pratica prevalente è quella di inserire il testo delle applicazioni all'interno di stringhe che vengono caricate durante l'esecuzione del programma a seconda dei parametri locali impostati dall'utente. Queste stringhe, archiviate in file di risorse, sono relativamente semplici da tradurre. I programmi sono spesso progettati per fare riferimento alle librerie di risorse a seconda dei dati locali selezionati.

Per esempio, un programma scritto in C in questo modo:

  printf("Fatal error: %s\n", msg);

non è internazionalizzato. Quindi per tradurre il messaggio, sarà necessario modificare il codice sorgente. Al contrario,

  printf(gettext("Fatal error: %s\n"), msg);

è internazionalizzato (grazie alla libreria Gettext): il programma andrà a cercare all'interno delle sue risorse localizzate una stringa di caratteri corrispondente a 'Fatal error: %s' nella lingua utilizzata dall'utente.

Perciò per far sì che un'applicazione supporti più lingue, lo sviluppatore dovrà progettare la sua applicazione in modo che selezioni le risorse linguistiche appropriate in fase di esecuzione dell'applicazione stessa. Il codice dell'applicazione quindi dovrà essere in grado di gestire, ad esempio, la verifica dei formati data inseriti e moltissimi altri tipi di dati che dipendono direttamente dalle impostazioni locali dell'utente. I moderni sistemi di sviluppo e i moderni sistemi operativi includono alcune librerie sofisticate per il supporto internazionale di questo tipo. Nonostante questo, molti ambienti di sviluppo ancora non hanno il completo supporto per Unicode, che complica drammaticamente il lavoro di traduzione, specialmente per le lingue dell'est e asiatiche.

Consulenza[modifica | modifica sorgente]

Alcune imprese lavorano nell'ambito della ricerca dell'internazionalizzazione che si occupa della ricerca di mercati in cui investire. Molte aziende e imprese, spesso in periodi di crisi o di stagnazione economica si affidano a queste ricerche per trovare vantaggi sul mercato globale.

Il concetto di Locale[modifica | modifica sorgente]

In informatica, locale è il gruppo di parametri che definisce la lingua, il paese e qualsiasi altra variante specifica, scelti dall'utente per la visualizzazione dell'interfaccia. Normalmente un identificatore locale è formato da un indentificatore di lingua (in minuscolo) e da un identificatore di regione (in maiuscolo).

Di seguito sono riportate alcune lingue parlate e utilizzate comunemente in più di una nazione ed i loro relativi identificatori locali:

L'identificatore di regione è particolarmente importante, ad esempio, per tutte quelle applicazioni che utilizzano il fuso orario.


Nomi alternativi e abbreviazioni[modifica | modifica sorgente]

Il termine inglese Internationalization viene spesso abbreviato come I18N (o i18n o I18n) dove il numero 18 fa riferimento al numero di lettere omesse[1].

Allo stesso modo, il termine inglese localization viene spesso abbreviato come L10N (o l10n o L10n).

Le forme più comunemente utilizzate sono rispettivamente i18n e L10n. Queste forme hanno avuto la prevalenza sulle altre perché molti font non hanno una netta distinzione tra la "I" maiuscola e la "l" minuscola, mentre la "i" minuscola e la "L" maiuscola sono sempre chiare.

Queste abbreviazioni evitano la confusione tra le diverse grammatiche inglesi (internationalisation e internationalization, ecc.).

Internazionalizzazione e localizzazione sono a volte (ed erroneamente) accumulate nel termine globalization (g11n), ma come abbiamo visto questa parola ha un diverso uso comune.

Meno utilizzate sono le abbreviazioni "p13n" per personalization, "m17n" per multilingualization e "r3h" per reach, intesa come raggiungimento di un sito web da diversi paesi e mercati. Un altro concetto legato ai suddetti è l'abbreviazione "a11y" per accessibility, che riguarda l'adattamento dei prodotti per persone disabili o con limitazioni dovute all'età.

Voci correlate[modifica | modifica sorgente]

Bibliografia[modifica | modifica sorgente]

  • (EN) .NET Internationalization: The Developer's Guide to Building Global Windows and Web Applications, Guy Smith-Ferrier, Addison-Wesley Professional, 7 agosto 2006. ISBN 0-321-34138-4

Note[modifica | modifica sorgente]

  1. ^ Origin Of The Abbreviation I18n For Internationalization

Collegamenti esterni[modifica | modifica sorgente]