Condividi tramite


Uso di MS Shell Dlg e MS Shell Dlg 2

Windows è disponibile nelle edizioni localizzate per molte lingue. Tuttavia, l'edizione in lingua inglese può essere usata anche per eseguire applicazioni scritte in lingue diverse dall'inglese. Ciò vale anche quando lo script usato per queste lingue è diverso, come quando le applicazioni vengono scritte in greco o giapponese. Queste applicazioni richiedono un'interfaccia utente con finestre di dialogo, icone e utilità che forniscono informazioni nella lingua dell'applicazione, che potrebbero essere diverse dalla lingua usata nell'interfaccia utente di Windows corrente.

Il problema nella selezione del tipo di carattere per un'interfaccia utente è ovvio. Ad esempio, il tipo di carattere della shell, noto anche come tipo di carattere predefinito o di sistema, per l'inglese (Stati Uniti) Windows 98 è MS Sans Serif, mentre il tipo di carattere della shell per Greco (Grecia) Windows 98 è MS Sans Serif Greco. Per il giapponese (Giappone) Windows 98, il tipo di carattere della shell è MS UI Gothic. Questi set di caratteri non possono essere mappati direttamente l'uno all'altro. La sostituzione di MS Sans Serif con MS Sans Serif Greek quando le impostazioni locali sono impostate su Greco (Grecia) non consente l'esecuzione delle applicazioni esistenti in modo adeguato o per visualizzare i caratteri greci nei menu di sistema, nelle finestre di dialogo e nei controlli di modifica.

Windows risolve questo problema usando i tipi di carattere logici MS Shell Dlg e MS Shell Dlg 2 per consentire la selezione del tipo di carattere appropriato per la visualizzazione dello script. In questa sezione vengono illustrate diverse considerazioni sulla programmazione per l'uso dei tipi di carattere logici per implementare finestre di dialogo, menu e come per le interfacce utente flessibili che vengono visualizzate bene in tutti i sistemi operativi Windows supportati e in tutti i linguaggi. Per altre informazioni, vedere Creazione e selezione dei tipi di carattere. Vedere anche Multilingual User Interface per una descrizione dell'uso della tecnologia MUI (Multilingual User Interface) nella creazione di interfacce utente per le applicazioni multilingue.

Informazioni sui tipi di carattere logici

I tipi di carattere logici MS Shell Dlg e MS Shell Dlg 2 sono essenzialmente nomi di visi usati per il mapping per abilitare il supporto per impostazioni locali/impostazioni cultura con caratteri non contenuti nella tabella codici 1252, il set di caratteri di Windows per la Stati Uniti e l'Europa occidentale. MS Shell Dlg esegue il mapping al tipo di carattere della shell predefinito associato alle impostazioni cultura/impostazioni locali correnti e supporta l'aspetto classico del desktop di Windows. MS Shell Dlg 2 face name è stato introdotto in Windows 2000 per supportare l'aspetto introdotto con Windows 2000.

Ad esempio, se l'applicazione usa MS Shell Dlg o MS Shell Dlg 2 per le finestre di dialogo, un team di localizzazione che crea risorse in lingua greca per l'applicazione può concentrarsi sulla traduzione di testo. Non è necessario preoccuparsi di problemi come la distinzione tra MS Sans Serif e MS Sans Serif Greco.

Nota

I tipi di carattere generati da MS Shell Dlg e MS Shell Dlg 2 sono diversi in versioni di Windows diverse. Pertanto, è necessario assicurarsi che gli elementi dell'interfaccia utente vengano visualizzati correttamente in tutte le piattaforme.

 

Gestire i nomi dei tipi di carattere Hard-Coded

L'uso di Unicode consente alle applicazioni di gestire migliaia di caratteri diversi, ma la maggior parte dei tipi di carattere non copre tutto il set di caratteri Unicode. Le applicazioni non devono usare nomi di carattere hardcoded. Un motivo è che il hardcoded di un nome di carattere che visualizza caratteri per una lingua e non caratteri per un'altra lingua fa sì che tutto il testo localizzato nella seconda lingua venga visualizzato in modo errato. Un altro motivo per cui non usare nomi di carattere hardcoded è che il tipo di carattere desiderato potrebbe non essere caricato nel sistema operativo che visualizza il testo dell'applicazione.

Il modo migliore per considerare i nomi dei tipi di carattere è considerarli come risorse localizzabili. L'uso di un tipo di carattere logico risolve il problema di eseguire l'interfaccia usando qualsiasi lingua in Windows NT o Windows 2000, per qualsiasi lingua. L'impostazione di un nome di carattere come risorsa localizzabile consente al localizzatore di modificare il tipo di carattere per l'interfaccia utente localizzata.

Gestire Hard-Coded dimensioni carattere

Alcuni script sono complessi e richiedono un numero elevato di pixel per la visualizzazione corretta. Ad esempio, la maggior parte dei caratteri inglesi viene visualizzata in una griglia 5x7, ma i caratteri giapponesi devono avere almeno una griglia 16x16 per essere chiaramente vista. Mentre il cinese ha bisogno di una griglia 24x24, thai ha bisogno solo di 8 pixel per la larghezza, ma almeno 22 pixel per l'altezza. È facile capire che alcuni caratteri potrebbero non essere leggibili con dimensioni ridotte del carattere.

L'interfaccia utente dell'applicazione deve considerare le dimensioni del carattere come risorse localizzabili. L'uso di un tipo di carattere logico risolve il problema di eseguire l'interfaccia usando qualsiasi lingua in Windows NT o Windows 2000, per qualsiasi lingua. L'impostazione di una dimensione del carattere come risorsa localizzabile consente al localizzatore di modificare il tipo di carattere per l'interfaccia utente localizzata.

Eseguire il mapping dei tipi di carattere logici

Ogni carattere logico è mappato da una voce nel Registro di sistema al tipo di carattere della shell appropriato per le impostazioni locali attualmente attive. Quando viene usato uno dei tipi di carattere logici, Windows passa al tipo di carattere per le impostazioni locali attualmente selezionate in fase di esecuzione. Questa operazione consente la visualizzazione corretta dell'interfaccia utente di Windows in inglese (Stati Uniti), nonché dei caratteri non presenti nella tabella codici 1252. Pertanto, attualmente la spedizione di applicazioni localizzate può essere eseguita nella versione inglese (Stati Uniti) di Windows senza modifiche.

Ogni computer Windows esegue il mapping di MS Shell Dlg e MS Shell Dlg 2 a un tipo di carattere fisico appropriato, in base al linguaggio definito per i programmi non Unicode, descritto nella terminologia NLS. I mapping effettivi vengono archiviati nella chiave del Registro di sistema HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\FontSubstitutes.

Mapping dei tipi di carattere in Windows Me/98/95

MS Shell Dlg esegue in genere il mapping a una versione specifica della tabella codici di MS Sans Serif.

Mapping dei tipi di carattere in Windows NT 4.0

MS Shell Dlg esegue il mapping a MS Sans Serif per l'europa occidentale e centrale, il greco, il turco, il baltico e le lingue che usano lo script cirillico; MS UI Gothic per il giapponese; Gulim per coreano; Simsun per cinese semplificato; PMinglu per il cinese tradizionale; and so on.

Mapping dei tipi di carattere in Windows 2000, Windows XP, Windows Server 2003, Windows Vista e Windows 7

Entrambi i tipi di carattere logici vengono mappati ai tipi di carattere TrueType basati su Unicode. MS Shell Dlg usa Microsoft Sans Serif (distinct from MS Sans Serif) se la lingua di installazione non è giapponese. MS Shell Dlg esegue il mapping a MS UI Gothic se la lingua di installazione è giapponese.

Nei sistemi MUI di Windows XP, MS Shell Dlg esegue il mapping a MS UI Gothic solo quando le impostazioni locali di sistema e la lingua dell'interfaccia utente sono impostate sul giapponese. In caso contrario, MS Shell Dlg esegue il mapping a Microsoft Sans Serif.

In Windows Vista e Windows 7 MS Shell Dlg esegue il mapping a MS UI Gothic se la lingua predefinita dell'interfaccia utente del computer è impostata sul giapponese (indipendentemente dalla lingua di installazione). MS Shell Dlg esegue il mapping a Microsoft Sans Serif se la lingua predefinita del computer dell'interfaccia utente è impostata su una lingua diversa dal giapponese.

MS Shell Dlg 2 usa semplicemente il tipo di carattere Tahoma indipendentemente dalla lingua. Il vantaggio principale di Tahoma rispetto a Microsoft Sans Serif è che Tahoma ha un carattere in grassetto nativo. Lo svantaggio principale è che i sistemi operativi meno recenti potrebbero non averlo installato e potrebbero sostituire un tipo di carattere meno attraente.

I caratteri non implementati in Tahoma o Microsoft Sans Serif possono essere implementati in altri tipi di carattere di Windows usati per la visualizzazione del testo nelle interfacce utente. A seconda dei controlli o delle API usati per visualizzare il testo, è possibile usare vari meccanismi, ad esempio il collegamento dei tipi di carattere , dal sistema per selezionare automaticamente tali tipi di carattere per la visualizzazione di tali caratteri.

Le applicazioni possono usare Microsoft Sans Serif o Tahoma in modo esplicito e salvare il livello di riferimento indiretto coinvolto nell'uso di MS Shell Dlg o MS Shell Dlg 2. A causa del collegamento dei tipi di carattere, specificando Microsoft Sans Serif o Tahoma sono disponibili glifi appropriati per tutte le lingue.

Usare MS Shell Dlg per un'applicazione non in lingua inglese in Windows Me/98/95

In Windows Me/98/95 MS Shell Dlg non è destinato all'uso con un'applicazione dell'interfaccia utente statica e non in inglese eseguita quando l'utente ha scelto impostazioni locali con un set di caratteri di base di Windows diverso. In questo caso, il linguaggio dell'interfaccia utente dell'applicazione potrebbe non essere supportato con il tipo di carattere sostituito da MS Shell Dlg.

Ad esempio, se l'utente usa una versione in lingua tedesca di Windows e vuole installare un'applicazione in lingua greca non Unicode, l'utente tenta di modificare le impostazioni locali in Greco (Grecia). Questa azione reimposta MS Shell Dlg su un tipo di carattere greco, ma questo tipo di carattere non contiene tutti i glifi necessari per la visualizzazione in tedesco. Pertanto, tutti i caratteri non ASCII nell'interfaccia utente in lingua tedesca non verranno visualizzati correttamente. Per supportare questo scenario, un'applicazione deve impostare MS Shell Dlg su un tipo di carattere che contiene sia glifi dell'Europa occidentale che dei glifi greci.

Enumerazione e selezione dei tipi di carattere internazionali

Interfaccia utente multilingue