Manuale per la programmazione Tivoli Service Desk 6.0 Developer's Toolkit Script

Capitolo 10: Programmazione per utilizzi internazionali

Ritorna all'Indice analitico


Introduzione

Poiché molti sviluppatori di software accrescono i loro obiettivi di mercato, inevitabilmente il software sviluppato in un determinato Paese sarà venduto o utilizzato in altri Paesi. Questi spostamenti richiedono che gli sviluppatori di software siano consapevoli delle esigenze specifiche risultanti dall'utilizzo del software in un mercato internazionale.

Inoltre, per conoscere le differenze culturali riscontrabili nell'indirizzare un codice di creazione, è necessario conoscere gli effetti che la localizzazione può avere su un'applicazione. La modifica di un'applicazione del software per un gruppo culturale specifico viene definita localizzazione.

Come comportarsi se non si conoscono le differenze presenti tra i mercati internazionali? Come creare un software che può essere facilmente localizzato?

Risorse internazionali

La soluzione più semplice per la localizzazione è di memorizzare tutte le risorse necessarie nei file .df. Cioè, tutte le bitmap, i menu, le stringhe, le icone e le caselle di dialogo vengono compilati e memorizzati separatamente dal resto del codice. Quando un'applicazione viene venduta all'esterno degli Stati Uniti, i distributori ricevono i tool e le istruzioni necessarie per modificare queste risorse.

Una volta che queste risorse sono state localizzate adeguatamente, i file possono essere ricreati e copiati sul supporto magnetico d'installazione.

Non è necessario modificare né il codice né il supporto magnetico d'installazione. Il programma d'installazione, inoltre, verrà localizzato come risultato di questa operazione.

Supporto API del sistema operativo

Quando possibile, le applicazioni Tivoli impediscono di utilizzare il codice esclusivo per gestire le emissioni internazionali. Per questo motivo, ogni processo di copia di caratteri ampi d'origine del sistema operativo può convertire un codice a due byte in uno a un byte.

I dati d'internazionalizzazione e le chiamate API resi disponibili dal sistema operativo host vengono sempre utilizzati al posto di funzioni esclusive. Ciò riduce la dimensione dell'applicazione e semplifica l'aggiunta di nuove locale supportate.

Supporto Unicode

Tutte le stringhe utilizzate dalle applicazioni Tivoli vengono memorizzate internamente come stringhe Unicode. Unicode (oppure ISO 10646) è un sistema di caratteri uniformi a sedici-bit che supporta contemporaneamente gli alfabeti di tutte le locale internazionali.

Molte altre applicazioni internazionali utilizzano lo standard ISO 8859/x per stringhe di caratteri internazionali (conosciuti anche come multi-byte). Questo standard utilizza caratteri a otto bit per alfabeti più piccoli e caratteri a sedici bit per alfabeti più grandi. Mentre l'applicazione utilizza pagine di codice a più byte può utilizzare una memoria leggermente più piccola, ma il risultato della prestazione si rivela poco pratico.

Una stringa ISO singola può essere composta da caratteri a otto e a sedici bit. Operazioni semplici come il back up di un singolo carattere o il conteggio dei caratteri in una stringa possono diventare più complesse perché non è possibile stabilire in modo attendibile se un byte singolo è un carattere intero o una parte di un carattere, senza considerare il numero di byte che lo precede.

Considerazioni culturali

Il supporto di internazionalizzazione del TSD Script facilita la scrittura dei codici conformi ai requisiti delle locale che esso supporta. Tuttavia, è importante ricordare che esistono delle differenze culturali che possono influenzare la comprensione di un'applicazione scritta negli Stati Uniti e tradotta per una locale specifica.

E' necessario conoscere ogni differenza culturale che può influenzare un'applicazione utilizzata in una locale diversa. Per esempio, il colore porpora ha queste interpretazioni culturali:

Categorie culturali

E' particolarmente importante adattare i seguenti contesti nelle applicazioni internazionali:

Code page

I sistemi operativi si adattano all'alfabeto di una lingua locale utilizzando una code page differente. Una code page è essenzialmente una tabella di associazioni di numeri e caratteri che consente di visualizzare correttamente una stringa di caratteri.

Un sistema di computer visualizza le lettere che la sua code page associa ai numeri in una stringa. Il software deve essere scritto in modo che le stringhe appropriate vengano inviate al sistema operativo tramite code page.

Un singolo sistema operativo può supportare più code page che contengono caratteri uguali. Tuttavia, un carattere comune a entrambe le code page non deve essere necessariamente associato allo stesso numero su entrambe le pagine.

Ad esempio, la lettera e è il numero 233 nella code page dell'alfabeto latino utilizzato da Windows 95. La stessa lettera è il numero 130 sulla code page dell'alfabeto latino utilizzato da MS-DOS.

Utilizzando la Progettazione d'interfaccia Developer's Toolkit, un convertitore carica le stringhe scritte per una code page e le converte in un'altra. Il sistema operativo di origine stabilisce quale code page è disponibile per le applicazioni.

Layout della tastiera

Dove vengono utilizzate code page differenti, esistono anche layout di tastiera differenti. Un'applicazione internazionale deve consentire alle definizioni dell'acceleratore di default di essere adattate a ogni tastiera.

Ordinamento e confronto delle stringhe

Locale differenti possono richiedere ordinamenti differenti. Un'applicazione deve essere scritta in modo che l'ordine alfabetico della code page locale fornisca elenchi ordinati secondo le esigenze dell'utente.

Il confronto di stringhe non sensibili al maiuscolo o al minuscolo ha un significato diverso per ogni locale. Nelle lingue ideografiche come il Giapponese e il Cinese, la "sensibilità al maiuscolo o al minuscolo" non ha alcun significato. In alfabeti di altre lingue, le lettere possono avere più di un semplice carattere maiuscolo o minuscolo.

Una volta creato un file .df, Developer's Toolkit utilizza le chiamate originarie su un sistema operativo per stringhe di confronto e di ordinamento.

Concatenamento di stringhe

La combinazione di sottostringhe per formare frasi complete è un errore diffuso in molte delle versioni internazionalizzate iniziali di un'applicazione. Poiché la costruzione delle frasi varia per ogni lingua, i verbi, i nomi, gli aggettivi e gli avverbi possono avere posizioni diverse all'interno delle frasi stesse. Molte lingue assegnano anche un genere a varie parti del discorso, che richiede l'utilizzi di parole diverse se si tratta di maschile, femminile o neutro.

Nota: Quando è possibile evitare di combinare le sottostringhe.

Editor dei metodi di immissione

Lingue ideografiche (come il Giapponese e il Cinese) hanno più caratteri di quelli che possono essere rappresentati sulla tastiera. Tuttavia, molti sistemi operativi consentono agli utenti di immettere la trascrizione fonetica di un carattere utilizzando un alfabeto diverso. Il sistema operativo fornisce, quindi, una serie di possibili ideogrammi che l'utente può selezionare. Il carattere selezionato viene ubicato nel documento o nel campo d'immissione. E' possibile avere a disposizione più lettere alfabetiche in una locale.

Developer's Toolkit supporta l'IME standard fornito dal sistema operativo.

Formati numerici

Locale differenti utilizzano formati differenti per la visualizzazione di informazioni numeriche, date, ora e somme monetarie. Ad esempio:

Dimensioni pagina/involucro

Poiché il foglio 8.5"x11" non viene utilizzato in tutte le locale, un'applicazione internazionale del software deve fornire dimensioni differenti durante la stampa delle pagine e degli sviluppi.
Developer's Toolkit non dispone di un meccanismo per convertire le dimensioni delle pagine.

Unità di misura

Per molte locale all'esterno degli Stati Uniti sono necessarie applicazioni per visualizzare le metriche piuttosto che le unità Inglesi.
Developer's Toolkit non dispone di un meccanismo per convertire le unità inglesi in unità metriche.

Espansione del testo

Dopo aver convertito il testo in una lingua differente, la sua dimensione può essere significativamente ingrandita o rimpicciolita rispetto all'originale. (Ciò è noto anche come diversificazione della conversione.)

Ad esempio: La conversione di un paragrafo dall'inglese allo spagnolo o al tedesco ingrandisce la dimensione totale del testo, approssimativamente del 30%.

La tabella seguente illustra questo concetto.

Numero di caratteri Fattore di espansione del testo
Da 1 a 10 Da 100 a 200%
Da 11 a 20 Da 80 a 100%
Da 21 a 30 Da 60 a 80%
Da 31 a 50 Da 40 a 60%
Da 51 a 70 Da 31 a 40%
Più di 70 30%

Icone, bitmap e colori

I simboli grafici sulle icone e altre bitmap devono poter essere facilmente modificati o avere un significato universale. Le applicazioni del software internazionale possono non avere il testo direttamente nelle bitmap che richiedono di essere convertite per ogni locale.

Esiste inoltre la possibilità che i simboli che possono sembrare innocenti e universali hanno invece un significato offensivo in determinate locale.

Sono necessarie le stesse precauzioni riguardo all'utilizzo dei colori per le caselle di dialogo e per le finestre. I colori, in alcune locale, hanno un'interpretazione totalmente diversa da quella fornita dalle culture occidentali.

La tabella seguente illustra le differenze tra le percezioni dei colori negli Stati Uniti e in Cina.

Colore Nazione e interpretazione
Rosso Cina: prosperità, rinascita
Stati Uniti: potere, arresto, pericolo
Bianco Cina: morte, lutto
Stati Uniti: purezza, innocenza
Giallo Cina: gioia, salute, rango, onore
Stati Uniti: attenzione, possibilità di pericolo fisico

Supporto per la locale

Le applicazioni software utilizzano il concetto di una locale per identificare un gruppo culturale per cui è possibile localizzare un'applicazione.

La lingua, il paese e la nazionalità (cultura) sono entità indipendenti: ogni combinazione di queste entità deve avere una locale unica a essa associata. Ad esempio, i cittadini svizzeri parlano quattro lingue differenti:

Ognuna di queste combinazioni richiede una locale unica separata.

Locale internazionali supportate

Le seguenti locale sono totalmente supportate in TSD Script per Windows, UNIX e OS/2.