Localizzazione (sviluppo software)

(Reindirizzamento da Localizzazione (software))

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

 
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

 
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

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

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

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

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

Nomi alternativi e abbreviazioni modifica

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

Bibliografia modifica

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

Collegamenti esterni modifica