2009-08-04 17 views
2

Ich verwende derzeit das iPhone SDK, um eine App zu erstellen, die Indische Skripts verwendet. Das iPhone hat jedoch Probleme mit dem Rendern bestimmter Glyphen in vielen indischen Skripten. Zum Beispiel:Rendering bestimmter Zeichen Glyph auf iPhone

प + ् + र = प्र 

oder

ਕ + ੍ + ਰ = ਕ੍ਰ 

Wenn Sie dies auf einem Mac geben (oder Windows) wird der Computer die drei Zeichen in das eine Glyphe automatisch machen (प्र - In Unicode ist es nach wie vor vertreten als drei Zeichen jedoch). Da das iPhone AAT (Apple Advanced Typography) oder erweiterte OpenType-Funktionen nicht unterstützt, rendert es die Zeichen als drei separate, die in vielen Fällen unlesbar wird. Ich denke, es sollte einen Weg geben, hart in Objective-C zu schreiben, um sicherzustellen, dass jedes Mal, wenn die drei Zeichen in einem UILabel erscheinen, sie eine bestimmte Glyphe aus der Schriftart Arial Unicode MS (eingebaut) rendern sollten. Es macht mir nichts aus, nicht dokumentierte APIs zu verwenden, um dies zu erreichen.

Antwort

2

Das Problem ist, dass das iPhone nur bestimmte Indic unterstützt oder keine AAT-Fonts unterstützt. Das iPhone unterstützt AAT-Tabelle sicher. Das Problem ist die richtige AAT-Schriftart, die Sie verwenden, ist nicht enthalten! U kann einige Glyphen anzeigen, da diese entweder in arialuni.ttf oder helvetica.ttf enthalten sind. Aber diese Schriftart hat keine OpenType oder AAT Tabellen.

Ich kann mit Bild bestätigen, was ich sage, ich habe ein Jailbreak iPhone und Sie können flickr.com/photos/[email protected]/ für Bild für richtige Khmer-Rendering, die eine der komplexesten indischen Skript ist.

Ich erklärte das Problem auf modmyi.com Website Forum. http://www.modmyi.com/forums/general-iphone-chat/680094-indic-font-rendering-iphone-yes-working.html#post4897261

+0

Danke! Dies sollte wirklich helfen. Wie hast du eine native Khmer-Tastatur erstellt? BTW ... Ich verwende Unicode Gurmukhi in meiner App. Ich werde versuchen, was du getan hast und dir sagen, wie es geht. Danke noch einmal! – Kulpreet

+0

Ich habe eine Antwort auf deinen Thread im Forum gepostet. Danke noch einmal! – Kulpreet

+0

In Bezug auf die Tastatur, der ganze Kredit geht an KENNYTM, die tatsächlich aktualisieren ist groß iKeyEx Plugin (Sie können überprüfen, ist Blog). http://networkpx.blogspot.com/2009/08/partial-30-support-for-ikeyx.html Ich habe nur die Plist-Datei für Khmer-Tastatur erstellt und folgen Sie seiner Anweisung, um die Tastatur zu erstellen. –

1

beginnen zu erkunden, was Apple wird wie folgt verwendet:

  • Versuchen Sie die einzelnen Glyphen in beiden Notizen und E-Mail eingeben und sehen, ob sie zusammengesetzte. Wenn nicht, dann ist es unwahrscheinlich, dass ein versteckter Teil des Codes dies tut.

  • Als nächstes erstellt ein Composite-Zeichen auf dem Mac und mailen Sie es auf Ihr iPhone. Sehen Sie, ob Mail sogar verschiedene zusammengesetzte Zeichen anzeigen kann. Wiederholen Sie dies, indem Sie eine Webseite mit zusammengesetzten Charakteren hosten und beobachten, was MobileSafari macht. Ich habe dies für Sie getan, indem ich diese Seite in MobileSafari angesehen habe. Die Zeichen werden nicht richtig zusammengesetzt. Das sagt uns, dass WebKit auf dem iPhone nicht helfen kann (und es viel weniger wahrscheinlich macht, dass das iPhone das überhaupt kann).

  • Schließlich, warum glauben Sie, dass प्र überhaupt auf dem iPhone verfügbar ist? Konntest du diese Glyphe jemals auf einem iPhone in einer App anzeigen? Es ist sehr gut möglich, dass es keine solche Glyphendefinition gibt. In diesem Fall können Sie feststecken, wenn Sie nicht bereit sind, Ihren eigenen Layoutmanager zu schreiben (was wahrscheinlich eine komplett neue Textansicht erfordern würde). Wenn Sie es irgendwo anzeigen konnten, können Sie von dort aus weitergehen, um herauszufinden, wie Apple es anzeigt.

Gibt es sogar eine indische Tastatur auf dem iPhone? Ich konnte keins finden, und wenn nicht, dann ist es äußerst unwahrscheinlich, dass sie sehr viel Indische Unterstützung in privaten Methoden versteckt haben.

Achten Sie darauf, Radars (bugreport.apple.com) für alle Glyphen zu öffnen, die auf dem iPhone falsch gezeichnet werden. So können sie es beheben.

+0

Ich habe das gefunden: http://www.hackint0sh.org/forum/f9/39822.htm, und hier kam ich auf die Idee, undokumentierte APIs zu verwenden. Ich kann nicht herausfinden, was genau es tut und wie es mir helfen könnte, da ich relativ neu im Framework bin. Was die Tastatur angeht, habe ich eine eigene Tastatur für meine App erstellt und das Problem mit dem Indischen Rendering an Apple weitergeleitet, seit Apple Unicode Indic Schriftarten in 2.0 unterstützt hat. -Danke – Kulpreet

+0

Was Sie tun möchten, ist ein Blick in das Schriftartverzeichnis des Telefons (sollte/System/Library/Fonts oder/System/Library/Fonts/Cache) und greifen Sie die tatsächlichen .ttf-Dateien und werfen Sie sie in einen Font-Editor und schau, ob diese Charaktere wirklich da sind. Vertraue den TTF-Dateien des Simulators nicht. Sie müssen das tatsächliche Gerät überprüfen. Sie können Code schreiben, um dieses Verzeichnis zu lesen, es auszudrucken, Dateien in Ihr eigenes Dokumentenverzeichnis zu kopieren und es im Organizer herunterzuladen. Oder Sie können ein jailbroken Telefon verwenden. Ich vermute, dass Indic nicht wirklich unterstützt wird. –

+0

Also ging ich in das iPhone System und benutzte FontForge um herauszufinden, dass die Glyphen nicht in der Arial Unicode MS (arialuni.ttf) Datei waren. Es scheint, dass Apple diese alternativen Zeichen in einer separaten Datei für jede Sprache (d. H. Devanagari.ttf) speichert, die die alternativen Zeichen enthält. Diese Dateien sind nicht auf dem iPhone vorhanden. Das ist enttäuschend. Also habe ich versucht, es ohne Glück in mich zu stecken. Was kann ich in Bezug auf meine Bewerbung tun? – Kulpreet

1

Ich arbeite an Sprachlern-Anwendungen.

Es gibt wenig bis keine Unterstützung für indische Skripte auf dem iPhone. Sie müssen Ihre eigene Text-Rendering-Unterstützung und Elemente, die sie verwenden, schreiben oder darauf warten, dass Apple sie implementiert.

Das iPhone OS konnte arabische Skripts erst ab 3.0 rendern, und OS X unterstützt nur bestimmte indizierte Textdateien mit Unterstützung von Drittanbietern.

Meine Lösung zur Unterstützung von Skripts, die iPhone OS nicht rendern kann, ist die Verwendung von vorgerenderten Bildern. Wahrscheinlich nicht viel Hilfe für dich, aber das ist was wir machen.