Domanda

Saluti,

Sto scrivendo un'applicazione Flash con supporto multilingue. La mia scelta iniziale di carattere per questo era Tahoma, per il suo supporto Unicode. Il client preferisce un tipo di carattere non standard come Lucida Handwriting. Lucida Handwriting non ha lo stesso supporto cirillico di Tahoma, il che pone un problema che ci sono alcuni modi per risolvere, e vorrei chiedere un consiglio su quale sia preferibile:

Da quello che ho capito, potrei:

  • Fornisci al cliente un elenco di caratteri pienamente compatibili con Unicode (cirillico, ebraico, arabo, cinese tradizionale, est asiatico, ecc.) tra cui scegliere. (Non ho idea di dove trovare un tale elenco; la mia ricerca sul web ha prodotto solo elenchi di caratteri parzialmente compatibili con Unicode. Prova http://look.fo/list-of-unicode-compliant-fonts come un buon punto di partenza per vedere dove ho guardato).
  • A seconda della posizione del cliente (che già abbiamo), renderizza in Lucida Handwriting per gli utenti di lingua inglese e in Tahoma per gli utenti internazionali. Questo può essere un po 'un mal di testa; qualcuno ha avuto esperienza con questo approccio?
  • Crea un nuovo font (IE, AlexeyMK Bold) che utilizza Lucida Handwriting per l'inglese e Tahoma per tutto il resto. Questo annuncio è qualcosa come 500k per il peso del file Flash, ma dovrebbe (se ho capito bene) essere caricato solo la prima volta.

Cosa mi consigliate? Quali di queste sono soluzioni ragionevoli e quali sono completamente disponibili? C'è un modo a cui non sto pensando?

Mille grazie! Alexey

EDIT: un buon articolo sull'argomento: http://www.itworld.com/print/ 58558

È stato utile?

Soluzione

Bene, alla fine hai solo due vere scelte: o incorporate un carattere nel vostro SWF, garantendo come appariranno i vostri caratteri, oppure no, e usate i caratteri del dispositivo. (O una combinazione dei due, utilizzando i caratteri incorporati o del dispositivo a seconda della regione.)

Se non si incorporano caratteri, qualsiasi tipo di carattere definito per il testo è in definitiva solo un suggerimento: ciò che l'utente vedrà sono i caratteri del dispositivo, essendo renderizzati dalla propria macchina (usando i caratteri su quella macchina). Quindi puoi & Quot; suggerire & Quot; Tahoma, ma ciò che l'utente vede dipenderà dal fatto che abbia quel tipo di carattere (e potrebbe variare per, diciamo, versioni Mac del carattere rispetto alle versioni PC). Naturalmente questo dipende anche dal supporto; se non hanno caratteri asiatici, ad esempio non vedranno alcun cinese. (Nota: puoi anche scegliere un carattere come & Quot; _sans & Quot ;, che dice semplicemente al client di usare il suo carattere standard sans-serif. La mia ipotesi è che in pratica questo finirà per essere lo stesso carattere sarebbe stato scelto se avessi definito " Tahoma " ;, ma YMMV.)

Se incorpori i tuoi caratteri, l'utente vedrà esattamente ciò che ti aspetti, perché il carattere è reso da Flash e non dal sistema operativo. Ma se ti integri completamente per tutte le regioni, compresi i glifi necessari per il cinese, penso che troverai che aggiunge considerevolmente più di 500K .. più come 2-5 MB nella mia esperienza. Ma forse ci sono alcuni dettagli che mi mancano. Ad ogni modo, per il contenuto che deve essere consegnato sul web, in genere suppongo che, almeno, i caratteri asiatici dovrebbero essere caratteri del dispositivo.

Per aggiungere una parola su una soluzione mista, l'ho fatto ed è fattibile. Cioè, supponendo che sia possibile aggiungere la logica al file SWF, è possibile (ad esempio) creare due di ciascun campo di testo, uno usando & Quot incorporato; Lucida qualunque sia & Quot; e l'altro usando " _sans " non incorporato; quindi, in fase di esecuzione, rendine uno invisibile e metti del testo nell'altro, a seconda della regione che stai mostrando. (L'ho fatto creando un singolo componente LocalizedTextfield e facendolo leggere le impostazioni locali da una proprietà statica quando è inizializzato.) Quindi devi semplicemente decidere, per ogni locale, se le dimensioni del file valgono la visualizzazione per quel particolare set di glifi.

L'ultima parola è che non puoi necessariamente supporre che le dimensioni del file sostenute dai tuoi caratteri vengano caricate una sola volta. Se rendi il tuo contenuto in modo semplice e incorpori i caratteri nei tuoi campi di testo, le informazioni sui caratteri faranno parte del tuo SWF e quindi verranno caricate ogni volta, qualunque cosa accada. Per esternalizzare è possibile rendere il componente Label un file separato, quindi la decisione di caricarlo o meno dipende dalle impostazioni di memorizzazione nella cache del browser. Puoi anche esternalizzare la risorsa font stessa e usarla come risorsa condivisa, ma in AS2 questo è un po 'peloso per far funzionare. Ho sentito che è più facile in AS3 ma non l'ho fatto da solo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top