2015-07-05 17 views
5

ich habe ein Label, das ein mehrzeiliges Text in persischermehrzeiliger Text in Kivy Etikett (Python-bidi)

kv-Datei anzuzeigen:

<[email protected]>: 
     font_name: 'tabassom' 

    FarsiLabel: 
     text: set_text('پیروزی برای افرادی امکان پذیر است که از مبارزه دست نمی کشند\n') 
     text_size: self.size 
     halign: 'center' 
     color: utils.get_color_from_hex('546E7A') 

Set_Text Methode:

def set_text(text): 
     text = unicode(text, 'utf-8') 
     result = arabic_reshaper.reshape(text) 
     result = get_display(result) 
     return result 

Ergebnis (falsch):

enter image description here

korrektes Ergebnis (Gimp):

enter image description here

ich, dass das Problem in der Python-bidi get_display Methode gefunden habe, aber ich weiß nicht, wie es ist

Frage zu lösen: Wie um dieses Problem zu lösen?

Antwort

2

So funktioniert bidi.algorithm.get_display, es invertiert die Reihenfolge der Buchstaben. Was Sie als erstes Wort betrachten, ist das letzte Wort in der Ausgabe.

Sie sollten die Breite des Etiketts in Zeichen erkennen und die Segmentierung in Zeilen selbst vornehmen. Wenden Sie dann in jeder Zeile get_display an.

  • Zeile 1: پیروزی برای افرادی امکان پذیر است که از مبارزه
  • Zeile 2: دست نمی کشند
Verwandte Themen