2013-07-01 14 views
7

Dato un carattere Unicode, vogliamo scoprire quali lingue includono questo carattere e, cosa più importante, capire se ogni lingua è o meno Left-To-Right. Ad esempio, il carattere A potrebbe essere sia English sia Spanish, che sono entrambe lingue LTR.Come posso scoprire la lingua da un personaggio?

Voglio questo per il mio editor di testo. Qualcuno può aiutarmi a trovare una funzione API o qualcosa che risolva il mio problema?

Grazie in anticipo

+3

Non penso che ci sia un'API per questo in Windows. Penso che il modo in cui lo fai sia quello di eseguire la tua ricerca personale del Database dei caratteri Unicode: http://www.unicode.org/ucd/ o trovare una libreria che lo faccia. Sospetto che l'ICU lo faccia. –

+0

Che dire di ⌬, ∬, ✄ e ↸? –

+2

@AndreasRejbrand Sono neutri BIDI. È tutto nell'UCD. –

risposta

7

Unicode-saggio, LTR/RTL è una proprietà di personaggi, non di lingue che utilizzano tale carattere. Ciò è importante perché l'inglese incorporato in un testo arabo deve essere visualizzato da sinistra a destra, anche se per semplicità il documento nel suo complesso può essere contrassegnato come arabo. Se si utilizza JCL, è possibile ottenere queste proprietà utilizzando le funzioni UnicodeIsLeftToRight e UnicodeIsRightToLeft. Si noti che i caratteri non possono essere né da sinistra a destra né da destra a sinistra, e si noti inoltre che JCL utilizza una copia privata dell'elenco dei caratteri Unicode che potrebbe essere una versione leggermente diversa da quella utilizzata da una versione specifica di Windows.

1

Per quanto riguarda la domanda nel titolo, è necessario effettuare uno studio approfondito sull'uso dei caratteri nelle lingue del mondo. Ci sono alcune migliaia di lingue, anche se molte di loro non hanno un sistema di scrittura regolare; d'altra parte, alcune lingue hanno diversi sistemi di scrittura. Diverse varianti di una lingua possono avere diversi repertori di personaggi.

Quindi sarebbe uno sforzo importante, sebbene alcuni dati siano stati compilati per es. nel repertorio CLDR - ma il concetto "caratteri usati in una lingua" è tutt'altro che chiaro. (I caratteri æ, è ed ö sono usati in inglese? Sono sicuri che appaiono in alcune forme di inglese scritto.)

Quindi non sarebbe realistico aspettarsi di trovare una routine di libreria per tali scopi.

Apparentemente il tuo vero bisogno era decidere se un personaggio è un personaggio da sinistra a destra o un personaggio da destra a sinistra. Ma per completezza, ho fornito una risposta a ciò che hai effettivamente chiesto e che potrebbe essere rilevante in altri contesti.

Problemi correlati