Frage

Grüße,

Ich bin in der Mitte ein Flash-Anwendung zu schreiben, die mehrsprachige Unterstützung. Meine erste Wahl der Schriftart für diese war Tahoma, für seine Unicode-Unterstützung. Der Kunde bevorzugt eine Nicht-Standard-Schriftart wie Lucida Handschrift. Lucida Handschrift haben nicht die gleiche, sagen wir, Kyrillisch Unterstützung als Tahoma, die ein Problem darstellt, dass es ein paar Möglichkeiten, zu lösen sind, und ich möchte für Ihren Rat fragen, auf denen bevorzugt:

Von dem, was ich verstehe, ich konnte:

  • Geben Sie den Client eine Liste mit vollständig Unicode-kompatibel (Kyrillisch, Hebräisch, Arabisch, traditionellen Chinesisch, ostasiatische, etc.) Schriftarten zur Auswahl. (Ich habe keine Ahnung, wo eine solche Liste zu bekommen,. Meine Suche nach dem Web nur in Listen teilweise Unicode-kompatible Fonts geführt hat Versuchen Sie http://look.fo/list-of-unicode-compliant-fonts als ein guter Ausgangspunkt, um zu sehen, wo ich sah).
  • Je nach Standort des Kunden (die wir bereits haben), macht in Lucida Handschrift für englischsprachige Nutzer und in Tahoma für internationale Nutzer. Dies kann etwas von Kopfschmerzen sein; hat jemand Erfahrung mit diesem Ansatz hatte?
  • Erstellen Sie eine neue Schriftart (IE, AlexeyMK Bold), die für alles andere Lucida Handschrift für Englisch und Tahoma verwendet. Diese Anzeigen etwas wie 500k auf das Gewicht der Flash-Datei, sollte aber (wenn ich das richtig verstehen) nur das erste Mal geladen werden.

Was raten Sie? Welche von diesen sind vernünftige Lösungen, und welche vollständig da draußen? Gibt es eine Möglichkeit, dass ich nicht zu denken?

Vielen Dank! Alexey

EDIT: Ein guter Artikel zum Thema: http://www.itworld.com/print/ 58558

War es hilfreich?

Lösung

Nun, schließlich haben Sie nur zwei echte Möglichkeiten: Entweder Sie eine Schriftart in der SWF einbetten und garantieren, was Ihre Schriften aussehen werden, oder Sie es nicht tun, und Geräte Schriftarten verwenden. (Oder eine Mischung aus beiden, eingebettet Verwendung oder Geräteschriften je nach Region.)

Wenn Sie keine Schriften einbetten, dann, was Schriftart, die Sie für Ihren Text definieren, ist letztlich nur ein Vorschlag - was der Benutzer sieht Geräteschriften sind, durch ihre eigene Maschine gemacht zu werden (unter Verwendung der Schriftart auf dieser Maschine). So kann man „vorschlagen“ Tahoma, aber was der Benutzer wird davon abhängen, sieht, ob sie diese Schrift (und es könnte für variieren, sagen wir, Mac-Versionen der Schrift vs. PC-Versionen). Natürlich hängt dies auch von Unterstützung; wenn sie asiatische Schriften haben nicht dann dann werden sie keine Chinesen zum Beispiel sehen. (Anmerkung:. Sie können auch eine Schriftart wie „_sans“, wählen, die den Client teilt nur seine Standard serifenlose Schrift verwenden Meine Vermutung ist, in der Praxis, dass dies die gleiche Schriftart sein wird aufzuwickeln, die, wenn Sie gewählt worden wäre‘ d definiert "Tahoma", aber YMMV.)

Wenn Sie Ihre Schriften einbetten, dann wird der Benutzer genau sehen, was Sie von ihnen erwarten, weil die Schrift von Flash gemacht wird und nicht das Betriebssystem. Aber wenn Sie in vollem Umfang für alle Regionen einbetten, einschließlich der Glyphen für chinesische benötigt, dann denke ich, werden Sie feststellen, es fügt deutlich mehr als 500 K .. mehr wie 2-5MB in meiner Erfahrung. Aber vielleicht gibt es einige Details, die ich bin fehlt. Wie auch immer, für den Inhalt über das Internet geliefert werden würde ich in der Regel davon ausgehen, dass zumindest sollten asiatische Schriftarten Geräteschrift sein.

Um ein Wort zu einer gemischten Lösung hinzufügen, ich habe dies getan, und es ist machbar. Das heißt, wenn Sie die Logik zu SWF hinzufügen können, können Sie (zum Beispiel) zwei jeden Textfeldes machen, ein „Lucida, was auch immer“ und die andere mit nicht-embedded „_sans“ eingebettet verwenden, und dann zur Laufzeit zu machen von ihnen unsichtbar und setzen Text in der anderen, je nachdem, welche Region Sie zeigt. (Ich habe dies durch eine einzige LocalizedTextfield Komponente machen, und nachdem er das Gebietsschema aus einer statischen Eigenschaft lesen, wenn es initialisiert.) Dann müssen Sie einfach entscheiden, für jedes Gebietsschema, ob die Dateigröße wert ist die Anzeige für diesen bestimmten Satz von Glyphen.

Das letzte Wort ist, kann man nicht unbedingt davon ausgehen, dass die Dateigröße durch Ihre Schriften entstehen, werden nur einmal geladen werden. Wenn Sie Ihre Inhalte die einfache Art und Weise und Einbetten von Schriftarten in Ihrem Textfelder machen, dann wird die Schriftart Infos Teil Ihrer SWF sein, und somit jedes Mal, egal was geladen. Externalisieren es könnten Sie die Label-Komponente eine separate Datei machen, und dann die Entscheidung, es zu laden oder nicht, sind bis zu dem Cache-Einstellungen des Browsers. Sie können auch die Schriftart Ressource selbst externalisieren und es als gemeinsame Ressource verwenden, aber in AS2 ist dies etwas haarige Arbeit zu bekommen. Ich habe gehört, es ist einfacher, in AS3, aber nicht es selbst getan.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top