2008-12-08 7 views
4

Salutations,Prise en charge de plusieurs polices/langues dans Flash

Je suis en train d'écrire une application Flash qui a un support multilingue. Mon choix initial de police pour cela était Tahoma, pour son support Unicode. Le client préfère une police non standard telle que Lucida Handwriting. Lucida Handwriting n'a pas le même, disons, le soutien cyrillique que Tahoma, ce qui pose un problème qu'il y a quelques façons de résoudre, et je voudrais demander votre avis sur ce qui est préférable:

De quoi Je comprends, je pouvais:

  • donner au client une liste de (cyrillique, hébreu, arabe, chinois traditionnel, Asie de l'Est, etc.) entièrement Unicode compatible avec les polices de caractères à choisir. (Je n'ai aucune idée de l'endroit où obtenir une telle liste, ma recherche sur le web n'a abouti qu'à des listes de polices partiellement compatibles Unicode.) Essayez le http://look.fo/list-of-unicode-compliant-fonts comme un bon point de départ pour voir où j'ai regardé).
  • En fonction de l'emplacement du client (que nous avons déjà), rendez-vous dans Lucida Handwriting pour les utilisateurs anglophones et dans Tahoma pour les utilisateurs internationaux. Cela peut être un peu un mal de tête; Quelqu'un a-t-il eu de l'expérience avec cette approche?
  • Créer une nouvelle police (IE, AlexeyMK Bold) qui utilise Lucida Handwriting pour l'anglais et Tahoma pour tout le reste. Cette publicité quelque chose comme 500k pour le poids du fichier Flash, mais devrait (si je comprends bien) seulement être chargé la première fois.

Que conseillez-vous? Lequel de ces solutions sont raisonnables, et qui sont complètement là-bas? Y a-t-il un moyen auquel je ne pense pas?

Merci beaucoup! Alexey

EDIT: Un bon article sur le sujet: http://www.itworld.com/print/58558

Répondre

2

Eh bien, en fin de compte vous avez seulement deux vrais choix: soit vous intégrez une police dans votre fichier SWF, garantissant que vos polices ressembleront, ou vous n 't, et utiliser les polices de l'appareil. Si vous n'intégrez aucune police, la police que vous définissez pour votre texte n'est finalement qu'une suggestion - ce que l'utilisateur verra s'affichera. est les polices de périphérique, étant rendu par leur propre machine (en utilisant les polices sur cette machine). Donc, vous pouvez "suggérer" Tahoma, mais ce que l'utilisateur voit dépendra du fait qu'il possède cette police (et cela pourrait varier, disons, pour les versions Mac de la police contre les versions PC). Naturellement, cela dépend aussi du soutien; si elles n'ont pas de polices asiatiques alors elles ne verront aucun chinois par exemple. (Remarque: vous pouvez également choisir une police comme "_sans", qui indique simplement au client d'utiliser sa police sans empattement standard.) Je suppose que dans la pratique, cette police sera la même que celle qui aurait été choisie si vous ' d défini "Tahoma", mais YMMV.)

Si vous intégrez vos polices, l'utilisateur verra exactement ce que vous attendez d'elles, car la police est rendue par Flash et non par le système d'exploitation. Mais si vous intégrez entièrement pour toutes les régions, y compris les glyphes nécessaires pour le chinois, alors je pense que vous trouverez qu'il ajoute considérablement plus de 500K .. plus comme 2-5MB dans mon expérience. Mais peut-être y a-t-il des détails qui me manquent. Quoi qu'il en soit, pour que le contenu soit diffusé sur le Web, je suppose généralement que, au minimum, les polices asiatiques devraient être des polices de caractères.

Pour ajouter un mot sur une solution mixte, j'ai fait cela et c'est faisable.En supposant que vous puissiez ajouter la logique à votre fichier SWF, vous pouvez (par exemple) créer deux champs de texte, l'un en utilisant "Lucida quelquechose" et l'autre en utilisant "_sans" non incorporé. d'entre eux invisible et mettre du texte dans l'autre, en fonction de la région que vous montrez. (Je l'ai fait en créant un seul composant LocalizedTextfield et en lisant les paramètres régionaux d'une propriété statique lors de son initialisation.) Ensuite, vous devez simplement décider, pour chaque paramètre régional, si la taille du fichier vaut l'affichage pour cet ensemble particulier des glyphes. Le dernier mot est, vous ne pouvez pas nécessairement supposer que la taille de fichier encourue par vos polices ne sera chargée qu'une seule fois. Si vous faites de votre contenu un moyen simple et incorporez des polices dans vos champs de texte, alors les informations de police feront partie de votre fichier SWF et seront donc chargées à chaque fois, peu importe quoi. Pour l'externaliser, vous pouvez faire du composant Label un fichier séparé, puis la décision de le charger ou non dépend des paramètres de mise en cache du navigateur. Vous pouvez également externaliser la ressource de police elle-même et l'utiliser en tant que ressource partagée, mais dans AS2, il est difficile de travailler. J'ai entendu dire que c'est plus facile dans AS3 mais pas fait moi-même.

+0

Très apprécié! – AlexeyMK

Questions connexes