7
votes

Où exactement dans l'Android OS est un texte rendu?

Permettez-moi d'abord d'indiquer ce que j'essaie d'atteindre:

Pour créer un correctif pour le système d'exploitation Android pour lui permettre d'afficher arabe / hébreu correctement. Ces deux langues sont droite à gauche (RTL) et leur script implique des lettres connectées / glyphes (contrairement aux alphabets latins ayant des lettres discrètes).

Exemple:

Le mot arabe pour "voiture" est:

سيارة

Les lettres discrètes ressemblent à ceci:

س ي ا ر ة

Comme vous pouvez le constater, chaque lettre se connecte à l'autre lettre de différentes manières en fonction de ce qui le précède et de ce qui le suit. Ok, assez avec les leçons de langue :) Ma question est la suivante:

Quel binaire / classe d'Android dois-je avoir besoin de détourner pour activer cette fonctionnalité?

Une autre façon de la mettre est; Si vous vouliez que chaque instance "x" soit affichée comme "y", à l'échelle du système, quel binaire / classe aurais-tu besoin de me mêler?

Le code source est navigable sur GitHub: http://github.com/androïd/

Je pense que cela pourrait être quelque part sous la plate-forme C / C ++ plateforme_system_core ou thier personnalisé JVM platfom_dalvik . .

Juste pour être clair, la police n'est pas un problème puisque vous pouvez laisser tomber des polices arabe / hébreu comme des polices de chute et ils afficheraient, bien que de manière discrète.

Votre aide serait très appréciée :)


0 commentaires

3 Réponses :


0
votes

3 commentaires

Merci pour l'aide. Le lien que vous avez fourni rendra le texte correctement dans une application, cela fait toutefois partie de la solution. Je tiens à mettre en œuvre cela au niveau du système - de sorte qu'il rend correctement le cas avant d'atteindre ou après avoir quitté les appels d'applications.


Wow !. Lorsque vous faites cela, veuillez revenir et poster votre propre réponse voudriez-vous? Cela semble énormément intéressant


Cela implique la modification de la plate-forme / base.git, de recompiler efficacement la majeure partie du système Android. Les résultats sont pratiquement un mod du système Android (comme Cyanogenmod), à moins que vous ne sachiez à quoi remplacer les bibliothèques potentielles.



1
votes

voir externe / skia dans un arbre source de sortie. C'est la bibliothèque graphique Skia, et c'est finalement responsable du rendu des polices.


0 commentaires

1
votes

N'oubliez pas que le problème est plus compliqué que de modifier le moteur graphique sous-jacent.

Si vous appliquez une remodelage dans SKIA, vous risquez de résoudre des problèmes si les largeurs de lignes changent (survient lorsque لا remplace ل suivi par ا). C'est parce que le remodelage arabe pourrait modifier également la séquence de lettres et Skia, comme je le vois, essaie d'agir de manière passive au sujet du contenu du texte. Il diffuse simplement les lettres au périphérique d'affichage as-sont.

Maintenant, le problème pire est en fait à Android lui-même. L'arabe / hébreu nécessite un repositionnement du texte, qui est très stupide dans Android et ne peut pas gérer des problèmes très fondamentaux.

Plus de mauvaises nouvelles? La police de Android, Droid, ne contient pas de glyphes arabes ou hébreu. À moins que nous ne racercâtons l'appareil et le remplacez par une autre police, les carrés sont affichés au lieu de lettres arabes :)

Toute la plate-forme est encore loin d'être capable de faire face à n'importe quelle langue RTL, en particulier l'arabe.

Comme vous le voyez, une modification correcte pour les langues RTL n'est pas uniquement dans Skia ....


0 commentaires