Localizzazione (sviluppo software)

Da Wikipedia, l'enciclopedia libera.
(Reindirizzamento da I18n)
Vai alla navigazione Vai alla ricerca

In informatica (entro la localizzazione linguistica), la localizzazione è l'insieme dei processi di adattamento di un software – pensato e progettato per dato un mercato o un ambiente – ad altri mercati o ambienti (in particolare, ad altre nazioni e culture).

Applicazione[modifica | modifica wikitesto]

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

La localizzazione 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 e sistemi di scrittura;
    • sistemi di numerazione;
    • direzione della scrittura (es. da sinistra verso destra e da destra verso sinistra).
  • La data e l'ora: formato, calendari e fusi orari.
  • La valuta e i pesi e le misure.
  • Immagini e colori: questioni relative alla comprensibilità e all'appropriatezza culturale.
  • Nomi, titoli, documenti d'identità, passaporti, numeri di telefono, indirizzi e codici postali internazionali.

Localizzazione software[modifica | modifica wikitesto]

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 nordamericana. 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 wikitesto]

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 wikitesto]

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.

Il concetto di Locale[modifica | modifica wikitesto]

Lo stesso argomento in dettaglio: Locale (informatica).

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 identificatore 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 e i loro relativi identificatori locali:

Albanese
Identificatore Regione
sq-AL Bandiera dell'Albania Albania
sq-KS Bandiera del Kosovo Kosovo
sq-MK Bandiera della Macedonia del Nord Macedonia del Nord
Arabo
Identificatore Regione
ar-AE Bandiera degli Emirati Arabi Uniti Emirati Arabi Uniti
ar-BH Bandiera del Bahrein Bahrein
ar-DZ Bandiera dell'Algeria Algeria
ar-EG Bandiera dell'Egitto Egitto
ar-IL Bandiera d'Israele Israele
ar-IQ Bandiera dell'Iraq Iraq
ar-JO Bandiera della Giordania Giordania
ar-KW Bandiera del Kuwait Kuwait
ar-LB Bandiera del Libano Libano
ar-LY Bandiera della Libia Libia
ar-MA Bandiera del Marocco Marocco
ar-MR Bandiera della Mauritania Mauritania
ar-OM Bandiera dell'Oman Oman
ar-PS Bandiera della Palestina Palestina
ar-QA Bandiera del Qatar Qatar
ar-SA Bandiera dell'Arabia Saudita Arabia Saudita
ar-SD Bandiera del Sudan Sudan
ar-SO Bandiera della Somalia Somalia
ar-SY Bandiera della Siria Siria
ar-TD Bandiera del Ciad Ciad
ar-TN Bandiera della Tunisia Tunisia
ar-YE Bandiera dello Yemen Yemen
Bengalese
Identificatore Regione
bn-BD Bandiera del Bangladesh Bangladesh
bn-IN Bandiera dell'India India
bn-SG Bandiera di Singapore Singapore
Chamorro
Identificatore Regione
ch-GU Bandiera di Guam Guam
ch-MP Bandiera delle Isole Marianne Settentrionali Isole Marianne Settentrionali
Cinese
Identificatore Regione
zh-CN Bandiera della Cina Cina
zh-SG Bandiera di Singapore Singapore
zh-TW Bandiera di Taiwan Taiwan
Coreano
Identificatore Regione
ko-KP Bandiera della Corea del Nord Corea del Nord
ko-KR Bandiera della Corea del Sud Corea del Sud
Croato
Identificatore Regione
hr-BA Bandiera della Bosnia ed Erzegovina Bosnia ed Erzegovina
hr-HR Bandiera della Croazia Croazia
Danese
Identificatore Regione
da-DK Bandiera della Danimarca Danimarca
da-GL Bandiera della Groenlandia Groenlandia
Francese
Identificatore Regione
fr-AD Bandiera di Andorra Andorra
fr-BE Bandiera del Belgio Belgio
fr-BF Bandiera del Burkina Faso Burkina Faso
fr-BI Bandiera del Burundi Burundi
fr-BJ Bandiera del Benin Benin
fr-CA Bandiera del Canada Canada
fr-CD Bandiera della RD del Congo Repubblica Democratica del Congo
fr-CF Bandiera della Rep. Centrafricana Repubblica Centrafricana
fr-CG Bandiera della Rep. del Congo Repubblica del Congo
fr-CH Bandiera della Svizzera Svizzera
fr-CI Bandiera della Costa d'Avorio Costa d'Avorio
fr-CM Bandiera del Camerun Camerun
fr-DJ Bandiera di Gibuti Gibuti
fr-FR Bandiera della Francia Francia
fr-GA Bandiera del Gabon Gabon
fr-GB Bandiera del Regno Unito Regno Unito
fr-GF Bandiera della Francia Guyana francese
fr-GN Bandiera della Guinea Guinea
fr-GP Guadalupa
fr-HT Bandiera di Haiti Haiti
fr-IT Bandiera dell'Italia Italia
fr-KM Bandiera delle Comore Comore
fr-LB Bandiera del Libano Libano
fr-LU Bandiera del Lussemburgo Lussemburgo
fr-MC Bandiera di Monaco Principato di Monaco
fr-MG Bandiera del Madagascar Madagascar
fr-ML Bandiera del Mali Mali
fr-MQ Bandiera di Monaco Martinica
fr-NC Nuova Caledonia
fr-PF Bandiera della Polinesia francese Polinesia Francese
fr-PM Bandiera di Saint-Pierre e Miquelon Saint-Pierre e Miquelon
fr-RE Réunion
fr-RW Bandiera del Ruanda Ruanda
fr-SC Bandiera delle Seychelles Seychelles
fr-TD Bandiera del Ciad Ciad
fr-TG Bandiera del Togo Togo
fr-VU Bandiera di Vanuatu Vanuatu
fr-WF Wallis e Futuna
fr-YT Bandiera di Mayotte Mayotte
Greco
Identificatore Regione
el-CY Bandiera di Cipro Cipro
el-GR Bandiera della Grecia Grecia
Inglese
Identificatore Regione
en-AG Bandiera di Antigua e Barbuda Antigua e Barbuda
en-AI Bandiera di Anguilla Anguilla
en-AS Bandiera di Samoa Samoa
en-AU Bandiera dell'Australia Australia
en-BB Bandiera di Barbados Barbados
en-BM Bandiera di Bermuda Bermuda
en-BN Bandiera del Brunei Brunei
en-BS Bandiera delle Bahamas Bahamas
en-BW Bandiera del Botswana Botswana
en-BZ Bandiera del Belize Belize
en-CA Bandiera del Canada Canada
en-CK Bandiera delle Isole Cook Isole Cook
en-CM Bandiera del Camerun Camerun
en-DM Bandiera della Rep. Dominicana Rep. Dominicana
en-ER Bandiera dell'Eritrea Eritrea
en-ET Bandiera dell'Etiopia Etiopia
en-FJ Bandiera delle Figi Figi
en-FK Bandiera delle Isole Falkland Isole Falkland
en-FM Micronesia
en-GB Bandiera del Regno Unito Regno Unito
en-GD Bandiera di Grenada Grenada
en-GH Bandiera del Ghana Ghana
en-GI Bandiera di Gibilterra Gibilterra
en-GM Bandiera del Gambia Gambia
en-GU Bandiera di Guam Guam
en-GY Bandiera della Guyana Guyana
en-IE Bandiera dell'Irlanda Irlanda
en-IL Bandiera d'Israele Israele
en-IO Bandiera del Territorio britannico dell'Oceano IndianoTerritorio britannico dell'Oceano Indiano
en-JM Bandiera della Giamaica Giamaica
en-KE Bandiera del Kenya Kenya
en-KI Bandiera delle Kiribati Kiribati
en-KN Bandiera di Saint Kitts e Nevis Saint Kitts e Nevis
en-KY Bandiera delle Isole CaymanIsole Cayman
en-LC Bandiera di Saint Lucia Santa Lucia
en-LR Bandiera della Liberia Liberia
en-LS Bandiera del Lesotho Lesotho
en-MP Bandiera delle Isole Marianne Settentrionali Isole Marianne Settentrionali
en-MS Bandiera di MontserratMontserrat
en-MT Bandiera di Malta Malta
en-MU Bandiera di Mauritius Mauritius
en-MW Bandiera del Malawi Malawi
en-NA Bandiera della Namibia Namibia
en-NF Bandiera dell'Isola Norfolk Isola Norfolk
en-NG Bandiera della Nigeria Nigeria
en-NR Bandiera di Nauru Nauru
en-NU Bandiera di Niue Niue
en-NZ Bandiera della Nuova Zelanda Nuova Zelanda
en-PG Bandiera della Papua Nuova Guinea Papua Nuova Guinea
en-PH Bandiera delle Filippine Filippine
en-PK Bandiera del Pakistan Pakistan
en-PN Bandiera delle Isole Pitcairn Isole Pitcairn
en-PR Bandiera di Porto Rico Porto Rico
en-PW Bandiera di Palau Palau
en-RW Bandiera del Ruanda Ruanda
en-SB Bandiera delle Isole Salomone Isole Salomone
en-SC Bandiera delle Seychelles Seychelles
en-SG Bandiera di Singapore Singapore
en-SH Bandiera di Sant'Elena, Ascensione e Tristan da Cunha Sant'Elena
en-SL Bandiera della Sierra Leone Sierra Leone
en-SO Bandiera della Somalia Somalia
en-SZ Bandiera dell'eSwatini eSwatini
en-TC Bandiera di Turks e Caicos Turks e Caicos
en-TK Tokelau
en-TO Bandiera delle Tonga Tonga
en-TT Bandiera di Trinidad e Tobago Trinidad e Tobago
en-UG Bandiera dell'Uganda Uganda
en-US Bandiera degli Stati Uniti Stati Uniti
en-VC Bandiera di Saint Vincent e Grenadine Saint Vincent e Grenadine
en-VG Bandiera delle Isole Vergini Britanniche Isole Vergini britanniche
en-VI Bandiera delle Isole Vergini Americane Isole Vergini Americane
en-VU Bandiera di Vanuatu Vanuatu
en-WS Bandiera di Samoa Samoa
en-ZA Bandiera del Sudafrica Sudafrica
en-ZM Bandiera dello Zambia Zambia
en-ZW Bandiera dello Zimbabwe Zimbabwe
Irlandese
Identificatore Regione
ga-GB Bandiera del Regno Unito Regno Unito
ga-IE Bandiera dell'Irlanda Irlanda
Italiano
Identificatore Regione
it-CH Bandiera della Svizzera Svizzera
it-HR Bandiera della Croazia Croazia
it-IT Bandiera dell'Italia Italia
it-SI Bandiera della Slovenia Slovenia
it-SM Bandiera di San Marino San Marino
it-VA Bandiera della Città del Vaticano Città del Vaticano
Lingala
Identificatore Regione
ln-CD Bandiera della RD del Congo Repubblica Democratica del Congo
ln-CG Bandiera della Rep. del Congo Repubblica del Congo
Malay
Identificatore Regione
ms-BN Bandiera del Brunei Brunei
ms-MY Bandiera della Malaysia Malaysia
ms-SG Bandiera di Singapore Singapore
Olandese
Identificatore Regione
nl-AN Bandiera delle Antille Olandesi Antille olandesi
nl-AW Bandiera di Aruba Aruba
nl-BE Bandiera del Belgio Belgio
nl-NL Bandiera dei Paesi Bassi Paesi Bassi
nl-SR Bandiera del Suriname Suriname
Portoghese
Identificatore Regione
pt-AO Bandiera dell'Angola Angola
pt-BR Bandiera del Brasile Brasile
pt-CV Bandiera di Capo Verde Capo Verde
pt-GW Bandiera della Guinea-Bissau Guinea-Bissau
pt-MZ Bandiera del Mozambico Mozambico
pt-PT Bandiera del Portogallo Portogallo
pt-ST Bandiera di São Tomé e Príncipe São Tomé e Príncipe
Romeno
Identificatore Regione
ro-MD Bandiera della Moldavia Moldavia
ro-RO Bandiera della Romania Romania
Serbo
Identificatore Regione
sr-BA Bandiera della Bosnia ed Erzegovina Bosnia ed Erzegovina
sr-YU Bandiera della Serbia e Montenegro Serbia e Montenegro
Sindhi
Identificatore Regione
sd-IN Bandiera dell'India India
sd-PK Bandiera del Pakistan Pakistan
Spagnolo
Identificatore Regione
es-AR Bandiera dell'Argentina Argentina
es-BO Bandiera della Bolivia Bolivia
es-CL Bandiera del Cile Cile
es-CO Bandiera della Colombia Colombia
es-CR Bandiera della Costa Rica Costa Rica
es-CU Bandiera di Cuba Cuba
es-DO Bandiera della Rep. Dominicana Rep. Dominicana
es-EC Bandiera dell'Ecuador Ecuador
es-ES Bandiera della Spagna Spagna
es-GQ Bandiera della Guinea Equatoriale Guinea Equatoriale
es-GT Bandiera del Guatemala Guatemala
es-HN Bandiera dell'Honduras Honduras
es-MX Bandiera del Messico Messico
es-NI Bandiera del Nicaragua Nicaragua
es-PA Bandiera di Panama Panama
es-PE Bandiera del Perù Perù
es-PR Bandiera di Porto Rico Porto Rico
es-PY Bandiera del Paraguay Paraguay
es-SV Bandiera di El Salvador El Salvador
es-US Bandiera degli Stati Uniti Stati Uniti
es-UY Bandiera dell'Uruguay Uruguay
es-VE Bandiera del Venezuela Venezuela
Svedese
Identificatore Regione
sv-FI Bandiera della Finlandia Finlandia
sv-SE Bandiera della Svezia Svezia
Swahili
Identificatore Regione
sw-KE Bandiera del Kenya Kenya
sw-TZ Bandiera della Tanzania Tanzania
Swati
Identificatore Regione
ss-SZ Bandiera dell'eSwatini eSwatini
ss-ZA Bandiera del Sudafrica Sudafrica
Tamil
Identificatore Regione
ta-IN Bandiera dell'India India
ta-SG Bandiera di Singapore Singapore
Tedesco
Identificatore Regione
de-AT Bandiera dell'Austria Austria
de-BE Bandiera del Belgio Belgio
de-CH Bandiera della Svizzera Svizzera
de-DE Bandiera della Germania Germania
de-DK Bandiera della Danimarca Danimarca
de-IT Bandiera dell'Italia Italia
de-LI Bandiera del Liechtenstein Liechtenstein
de-LU Bandiera del Lussemburgo Lussemburgo
Tswana
Identificatore Regione
tn-BW Bandiera del Botswana Botswana
tn-ZA Bandiera del Sudafrica Sudafrica
Turco
Identificatore Regione
tr-BG Bandiera della Bulgaria Bulgaria
tr-CY Bandiera di Cipro Cipro
tr-TR Bandiera della Turchia Turchia
Ungherese
Identificatore Regione
hu-HU Bandiera dell'Ungheria Ungheria
hu-SI Bandiera della Slovenia Slovenia
Urdu
Identificatore Regione
ur-IN Bandiera dell'India India
ur-PK Bandiera del Pakistan Pakistan

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

Nomi alternativi e abbreviazioni[modifica | modifica wikitesto]

Il termine inglese localization viene spesso abbreviato come L10N (o l10n o L10n), dove le due lettere indicano la prima ed ultima della parola, e il numero di lettere omesse dalla parola stessa.[1].

Questa abbreviazione evita la confusione tra le diverse grammatiche inglesi (localisation, dall'inglese britannico, e localization, dall'inglese statunitense).

Allo stesso modo Internationalization viene spesso abbreviato come I18N (o i18n o I18n). I termini internazionalizzazione e localizzazione sono a volte erroneamente accumulate nel termine globalization (g11n), che ha però un significato diverso.

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à.

Note[modifica | modifica wikitesto]

Bibliografia[modifica | modifica wikitesto]

  • (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

Voci correlate[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]