Domanda

Attualmente sto usando iPhone SDK per creare un'app che utilizza gli script Indic. Tuttavia, l'iPhone ha problemi con il rendering di alcuni glifi in molti script Indic. Ad esempio:

प + ् + र = प्र

o

ਕ + ੍ + ਰ = ਕ੍ਰ

Quando lo digiti su un Mac (o Windows) il computer renderà automaticamente i tre caratteri in un glifo (??? - In Unicode è comunque rappresentato come tre caratteri). Poiché l'iPhone non supporta le funzionalità AAT (Apple Advanced Typography) o OpenType avanzate, rende i personaggi come tre separati che diventano illeggibili in molti casi. Sto pensando che ci dovrebbe essere un modo per codificare in Objective-C per garantire che ogni volta che i tre caratteri compaiono in un UILabel dovrebbero invece rendere un certo glifo dal carattere Arial Unicode MS (incorporato). Non mi dispiace usare API non documentate per raggiungere questo obiettivo.

È stato utile?

Soluzione

Il problema non è che l'iPhone supporta solo determinati Indic o non supporta i caratteri AAT. L'iPhone supporta sicuramente la tabella AAT. Il problema è che il carattere AAT corretto che usi non è incluso !! U può avere pochi glifi visualizzati perché quelli sono inclusi in arialuni.ttf o helvetica.ttf. Ma quei caratteri non hanno alcuna tabella OpenType o AAT.

Posso confermare con l'immagine ciò che dichiaro, ho un iPhone jailbreak e puoi controllare flickr.com/photos/41161441@N03/ per l'immagine per il corretto rendering Khmer, che è uno degli script Indic più complessi.

Ho spiegato il problema sul forum del sito web modmyi.com. http: //www.modmyi.com/forums/general-iphone-chat/680094-indic-font-rendering-iphone-yes-working.html#post4897261

Altri suggerimenti

Inizia esplorando ciò che Apple sta usando come segue:

  • Prova a inserire glifi separati in Notes e Mail e verifica se sono composti. Altrimenti, è improbabile che un pezzo di codice nascosto lo faccia.

  • Successivamente, hai creato un personaggio composto su Mac ed e-mail sul tuo iPhone. Verifica se Mail è anche in grado di visualizzare vari personaggi composti. Ripeti ospitando una pagina web con personaggi compositi e osservando cosa fa MobileSafari. L'ho fatto per te visualizzando questa pagina in MobileSafari; non compone correttamente i caratteri. Questo ci dice che WebKit su iPhone non può aiutarti (e rende molto meno probabile che iPhone possa farlo).

  • Infine, perché credi che & # 2346; & # 2381; & # 2352; è disponibile su iPhone? Sei mai stato in grado di visualizzare questo glifo su un iPhone in qualsiasi app? È molto probabile che non esista tale definizione di glifo, nel qual caso potresti rimanere bloccato a meno che tu non sia pronto a scrivere il tuo gestore di layout (che probabilmente richiederebbe la creazione di una vista di testo completamente nuova). Se sei stato in grado di visualizzarlo da qualche parte, puoi andare avanti da lì per capire come lo sta visualizzando Apple.

Esiste anche una tastiera Indic disponibile su iPhone? Non sono stato in grado di trovarne uno e, in caso contrario, è estremamente improbabile che abbiano molto supporto Indic nascosto in metodi privati.

Assicurati di aprire Radar (bugreport.apple.com) per tutti gli glifi che sono disegnati in modo errato su iPhone. Ecco come sanno ripararlo.

Lavoro su applicazioni per l'apprendimento delle lingue.

C'è poco o nessun supporto per gli script Indic su iPhone. Dovrai scrivere il tuo supporto per il rendering del testo e gli elementi che lo utilizzano o attendere che Apple lo implementi.

Il sistema operativo iPhone non è in grado di eseguire il rendering degli script arabi fino alla 3.0 e OS X supporta solo determinati testi Indic con supporto per il rendering di terze parti.

La mia soluzione per supportare gli script che il sistema operativo iPhone non è in grado di eseguire è utilizzare immagini pre-renderizzate. Probabilmente non ti sarà di grande aiuto, ma è quello che facciamo.

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