Question

J'utilise actuellement le SDK pour iPhone pour créer une application utilisant des scripts Indic. Cependant, l'iPhone a des problèmes avec le rendu de certains glyphes dans de nombreux scripts Indic. Par exemple:

प + ् + र = प्र

ou

ਕ + ੍ + ਰ = ਕ੍ਰ

Lorsque vous tapez ceci sur un Mac (ou Windows), l'ordinateur restitue automatiquement les trois caractères dans le glyphe (- Toutefois, en Unicode, il est toujours représenté par trois caractères). Étant donné que l'iPhone ne prend pas en charge la fonctionnalité AAT (Apple Advanced Typography) ni les fonctionnalités OpenType avancées, il restitue les caractères sous forme de trois caractères distincts, ce qui devient illisible dans de nombreux cas. Je pense qu'il devrait y avoir un moyen de coder en dur dans Objective-C pour s'assurer qu'à chaque fois que les trois caractères apparaissent dans un UILabel, ils doivent restituer un certain glyphe de la police Arial Unicode MS (intégrée). Cela ne me dérange pas d’utiliser des API non documentées pour y parvenir.

Était-ce utile?

La solution

Le problème n'est pas que l'iPhone ne prend en charge que certaines polices Indic ou n'accepte pas les polices AAT. L'iPhone prend en charge la table AAT à coup sûr. Le problème est que la police AAT que vous utilisez n'est pas incluse! U peut avoir peu de glyphes affichés car ceux-ci sont inclus dans arialuni.ttf ou helvetica.ttf. Mais ces polices ne disposent pas de tables OpenType ou AAT.

Je peux confirmer avec une photo ce que je déclare, j'ai un iPhone jailbreaké et vous pouvez consulter flickr.com/photos/41161441@N03/ pour une image assurant un rendu correct en khmer, l'un des scripts Indic les plus complexes.

J'ai expliqué le problème sur le forum du site Web modmyi.com. //www.modmyi.com/forums/general-iphone-chat/680094-indic-font-rendering-iphone-yes-working.html#post4897261

Autres conseils

Commencez par explorer ce que Apple utilise comme suit:

  • Essayez de saisir les glyphes distincts dans Notes et Mail et vérifiez s'ils sont composites. Sinon, il est peu probable qu'un morceau de code caché le fasse.

  • Ensuite, créez un personnage composé sur Mac et envoyez-le par e-mail sur votre iPhone. Voir si Mail est même capable d'afficher divers caractères composés. Répétez l'opération en hébergeant une page Web avec des caractères composés et en observant ce que MobileSafari fait. Je l'ai fait pour vous en consultant cette page dans MobileSafari; il ne compose pas les caractères correctement. Cela nous dit donc que WebKit sur iPhone ne peut pas vous aider (et qu’il est donc beaucoup moins probable que l’iPhone puisse le faire).

  • Enfin, pourquoi pensez-vous que & # 2346; & # 2381; & # 2352; est disponible du tout sur iPhone? Avez-vous déjà pu afficher ce glyphe sur un iPhone dans une application? Il est fort possible que cette définition de glyphe n'existe pas. Dans ce cas, vous risquez d'être bloqué à moins d'être prêt à écrire votre propre gestionnaire de disposition (ce qui nécessiterait probablement la création d'une vue texte entièrement nouvelle). Si vous avez été en mesure de l'afficher quelque part, vous pouvez alors aller de l'avant pour comprendre comment Apple l'affiche.

Existe-t-il même un clavier Indic sur iPhone? Je n'ai pas réussi à en trouver un, et s'il n'y en a pas, il est extrêmement improbable qu'ils aient beaucoup de support Indic caché dans des méthodes privées.

Assurez-vous d’ouvrir Radars (bugreport.apple.com) pour tous les glyphes mal dessinés sur l’iPhone. C'est comme ça qu'ils savent le réparer.

Je travaille sur des applications d'apprentissage des langues.

Les scripts Indic sur iPhone ne sont pratiquement pas pris en charge. Vous devrez écrire votre propre support de rendu de texte et les éléments qui l'utilisent ou attendre qu'Apple le mette en œuvre.

Le système d'exploitation iPhone ne pouvait pas restituer les scripts arabes avant la version 3.0, et OS X ne prend en charge que certains textes Indic avec la prise en charge du rendu par des tiers.

Ma solution pour prendre en charge les scripts que iPhone OS ne peut pas restituer consiste à utiliser des images préalablement rendues. Probablement pas beaucoup d'aide pour vous, mais c'est ce que nous faisons.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top