2013-07-01 5 views
7

Gegeben ein Unicode-Zeichen, möchten wir herausfinden, welche Sprachen dieses Zeichen enthalten, und noch wichtiger, verstehen, ob jede Sprache Left-To-Right ist oder nicht. Zum Beispiel könnte das Zeichen A sowohl English als auch Spanish sein, die beide LTR-Sprachen sind.Wie kann ich die Sprache eines Charakters herausfinden?

Ich möchte das für meinen eigenen Texteditor. Kann mir jemand helfen, eine API-Funktion zu finden oder etwas, das mein Problem löst?

Vielen Dank im Voraus

+3

Ich glaube nicht, dass es eine API dafür in Windows gibt. Ich denke, die Art, wie Sie dies tun, ist, Ihre eigene Suche nach der Unicode Character Database durchzuführen: http://www.unicode.org/ucd/ oder finden Sie eine Bibliothek, die das tut. Ich vermute, dass ICU dies tun wird. –

+0

Was ist mit ⌬, ∬, ✄ und ↸? –

+2

@AndreasRejbrand Sie sind BIDI neutral. Es ist alles in der UCD. –

Antwort

7

Unicode-weise, LTR/RTL ist eine Eigenschaft von Zeichen, nicht der Sprache, die das Zeichen verwenden. Dies ist wichtig, da eingebettetes Englisch in einem arabischen Text von links nach rechts angezeigt werden soll, auch wenn das Dokument als Ganzes möglicherweise als arabisch markiert ist. Wenn Sie JCL verwenden, können diese Eigenschaften mit den Funktionen UnicodeIsLeftToRight und UnicodeIsRightToLeft abgerufen werden. Beachten Sie, dass Zeichen weder von links nach rechts noch von rechts nach links sein dürfen, und beachten Sie, dass JCL eine private Kopie der Unicode-Zeichenliste verwendet, die möglicherweise eine geringfügig andere Version als eine bestimmte Windows-Version ist.

1

In Bezug auf die Frage im Titel, müssten Sie eine umfangreiche Studie über die Verwendung von Zeichen in den Sprachen der Welt durchführen. Es gibt einige tausend Sprachen, obwohl viele von ihnen kein normales Schreibsystem haben; Auf der anderen Seite haben einige Sprachen mehrere Schreibsysteme. Verschiedene Varianten einer Sprache können unterschiedliche Repertoires von Zeichen haben.

So wäre es ein großer Aufwand, obwohl einige Daten zusammengestellt wurden, z. in der CLDR Repertoire - aber das Konzept "Zeichen in einer Sprache verwendet" ist bei weitem nicht klar. (Werden die Buchstaben æ, è, und ö auf Englisch verwendet? Sie erscheinen in einigen Formen des geschriebenen Englisch.)

Es wäre daher unrealistisch zu erwarten, eine Bibliotheksroutine für solche Zwecke zu finden.

Anscheinend war Ihr wirkliches Bedürfnis zu entscheiden, ob ein Zeichen ein Zeichen von links nach rechts oder von rechts nach links ist. Aus Gründen der Vollständigkeit habe ich jedoch eine Antwort auf das gegeben, was Sie tatsächlich gefragt haben und das in einigen anderen Kontexten relevant sein könnte.

Verwandte Themen